grunt-shelltask
v0.0.9
Published
grunt exec shell task
Downloads
24
Readme
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)