Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including grunt-drush with all npm packages installed. Try it out:

require("grunt/package.json"); // grunt is a peer dependency. var gruntDrush = require("grunt-drush")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

grunt-drush v0.0.7

Drush task runner for grunt.

grunt-drush

Stupidly simple Drush task runner for grunt.

Getting Started

This plugin requires Grunt ~0.4.5

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-drush --save-dev

One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-drush');

The "drush" task

Overview

In your project's Gruntfile, add a section named drush to the data object passed into grunt.initConfig().

grunt.initConfig({
  drush: {
    your_target: {
      args: [],
      dest: 'path/if/required/for/task'
    },
  },
})

Example - Installing a fresh drupal install with some modules

grunt.initConfig({
    drush: {
      install: {
        args: ['make', 'example/core.make'],
        dest: 'src'
      }
    },
})

Example - Run a command and surpress stdout

grunt.initConfig({
    drush: {
      runserver: {
        args: ['runserver', '8080'],
        dest: 'src',
        options: {stdio: 'ignore'}
      }
    },
})

Configurable options

cmd

Path to the drush executable (Optional) - PATH is used if not specified.

cwd

Sets the current working directory (Optional) - Usually the path to your drupal installation.

args

A list of arguments to pass over to drush (Required), a javascript array of command parts to call drush with.

args: ['make', 'example/core.make']

options

A list of options to be passed to child_process.spawn such as stdout/stderr, uid/gid, or environment variables.

options: {stdio: 'ignore'}

src (Deprecated)

Supported only for backwards compatability, does nothing in the current release.

dest (Deprecated)

The destination directory for the drush task to be run in to, mainly useful for make.

TODO

  • Expand the functionality to do something more useful
  • Tests

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

Release History

  • 0.0.7 - @grayside Mirror debugging grunt options to drush, @mikeyp Allow options to be passed spawn.
  • 0.0.6 - @chasingmaxwell fixed regressions caused by my previous refactor
  • 0.0.5 - Refactored slightly to use newer tools, and resolve the original flaw whereby this.files was not populated if a src, or dest was not specified. Ability to specify the path to drush kindly added by @IslandUsurper
  • 0.0.4 - @chasingmaxwell Fixed an oversight on the test if dest is undefined
  • 0.0.3 - @thijsvdanker Removed deprecated contrib lib
  • 0.0.2 - @randallknutson Added the ability to specify the cwd
  • 0.0.1 - Initial hack together
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free