0.0.9 • Published 10 years ago

grunt-shelltask v0.0.9

Weekly downloads
1
License
-
Repository
github
Last release
10 years ago

grunt-shelltask

grunt插件,配置实现自动执行本地或远程的多命令任务处理。

Getting Started

This plugin requires Grunt *

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-shelltask --save-dev

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

grunt.loadNpmTasks('grunt-shelltask');

win系统如果出现有乱码情况,可尝试修改cmd窗口编码和字体,具体如下
设置方法:
1、在cmd窗口输入执行:chcp 65001 2、右击cmd窗口左上角,选择属性-->字体-->Lucida Console 然后确定

The "shelltask" task

Overview

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

grunt.initConfig({
  shelltask: {
    options: {
      // Task-specific options go here.
      localWorkPath: '', 
      "remoteName": {
        host: '',
        port: 22,
        username: '',
        password: '',
        workPath: ''
      }
    },
    my_task: {
      // Target-specific file lists and/or options go here.
      options:{

      },
      task: [
        {
          command: 'pwd',
          remote: 'remoteName'
        },{
          command: 'cd'
        },{
          command: 'skip' //custom command:Continue to the next
        },{
          command: 'exit' //custom command:No longer continue to execute down
        },{
          command: function (prev){
            /*
            this {
              options: '', 
              task: [],
              getResult: Function,//by id, by index
              prev: task[n-1]
            }
            prev == this.prev
            */
            return "echo " + this.task[1].ret;
          },
          after: function (data){
            //data:command result string
            //this same as above
            return data;
          }
        }
      ]
    },
    my_task2: {
      //...
    }
  },
});

Options

options.localWorkPath

Type: String Default value:

options.remoteName (remoteName user-defined)

Type: Object Default value:

Usage Examples

Default Options

In this example

grunt.initConfig({
  shelltask: {
    options: {
      localWorkPath: 'E:/workspace/', 
      "rs": {
        host: '123.1.1.10',
        port: 22,
        username: 'test',
        password: '123456',
        workPath: '/home/test/'
      }
    },
    my_task: {
      options:{
      
      },
      task: [
        {
          command: 'pwd',
          remote: 'rs'
        },{
          id: 'cdTest',
          command: 'cd',
          after: function (data){
            return {path: data};
          }
        },{
          command: function (prev){
            var _cmd = "echo " + prev.ret.path; 
            return _cmd;
          }
        },{
          command: function (){
            var ret = this.getResult("cdTest");//get result by task id
            var ret1 = this.getResult(1);//get result by task index
            var ret2 = this.getResult();//default 0
            var options = this.options; //options
            console.log(ret.path === ret1.path);//true
            console.log(ret2);// /home/test/
            return "skip";
          }
        },{
          command: "exit"
        },{
          command: "cd"//not execute
        }
      ]
    }
  }
});

Release History

(Nothing yet)

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago