fsk-branches
Version:
切换分支工具
116 lines (100 loc) • 3.13 kB
JavaScript
var os = require("os"),
arg = process.argv.splice(2),
param = arg[0] ? arg[0].toString().toLowerCase() : null;
if(/^win/gi.test(os.platform())){
//windows
var main = require('./branchesWin');
//查看默认的分支,并按数字列出来
if(!param){
main.branchesList();
}
//执行如dir等设置
else if(['setup', 'help', 'dir', 'nginx', 'copy'].some( function(v){ return v == arg[0] }) ){
main[param]();
}
//按数字序号切换分支
else if( /^\d+$/g.test(param) ){
main.branchesChange( parseInt(param,10) );
}
//切换到主干
else if( param=='trunk' || param=='h5trunk' ){
main.trunkChange(param);
}
//查看其它端的分支并按数字列出来
else if( /^-{0,2}[a-zA-Z-]+$/g.test(param) ){
param = param.replace(/-{0,2}/, "");
main.branchesList(param);
}else{
main.error("命令不正确!");
main.help();
}
}else{
//mac
var main = require('./branchesMac');
//查看默认的分支,并按数字列出来
if(!param){
main.branchesList();
}
//执行如dir等设置
else if(['setup', 'help', 'edit', 'dir', 'nginx', 'copy'].some( function(v){ return v == arg[0] }) ){
main[param]();
}
//svn
else if(param == "svn"){ //$ svn cp mianshikaui m="ffff" --h --h5
arg.shift();
if(arg[0] && /^\d+$/g.test(arg[0])){
main.svnCheckout(arg.join(','));
}else if(arg[0] && arg[0]=="cp"){
arg.shift();
var options={};
arg.forEach(function(v){
if(/^-{0,2}m=/g.test(v)){
options.log = v.replace(/^-{0,2}m=/g,"");
}else if(/^-{1,2}(pc|h5)$/g.test(v)){
options.system = v.replace(/^-{1,2}/,"")
}else if(/^-{1,2}[a-z-A-Z]+$/g.test(v)){
options.port = v.replace(/^-{1,2}/,"");
}else if(/^[^\-]+$/g.test(v)){
options.name = v.replace(/^-{1,2}/,"");
}
});
options.port = options.port || "h";
options.system = options.system || "pc";
main.svnCopyBranches(options);
}else if(!arg[0] || /^[a-zA-Z]+$/g.test(arg[1])){
main.svnList(arg.join(','));
}
}
//设置密码
else if(param == "setpwd" || param == "setpassword" ){
main.setPassword(arg[1]);
}
//选择分支后可以执行一些命令 如 fsk-branches 1 fsk-sync -d -h q1 --pub 直接把这个分支上部署到服务器上
else if( /^\d+$|^(h5)?trunk$/ig.test(param) && arg.length>1 ){
var num = arg.shift();
switch(arg[0]){
case "event" :
main.eventCommand(num, arg);
break;
default :
main.command(num, arg.join(' '));
}
}
//按数字序号切换分支
else if( /^\d+$/g.test(param) ){
main.branchesChange( parseInt(param,10) );
}
//切换到主干
else if( param=='trunk' || param=='h5trunk' ){
main.trunkChange(param);
}
//查看其它端的分支并按数字列出来
else if( /^-{0,2}[a-zA-Z-]+$/g.test(param) ){
param = param.replace(/-{0,2}/, "");
main.branchesList(param);
}else{
main.error("命令不正确!");
main.help();
}
}