| ); | ); | ||||
| }) | }) | ||||
| } | } | ||||
| , 'push' : ()=>{ | |||||
| if(!processedArgs._[1]) { console.error('push all not supported. Specify repo name'); return } | |||||
| // init remote bare from local | |||||
| // pushandinitremotebare | |||||
| // https://www.jeffgeerling.com/blogs/jeff-geerling/push-your-git-repositories | |||||
| // connect to repo server -- net use 172.16.0.27 | |||||
| // cd 172.16.0.27/repos/ | |||||
| // mkdir repo.git | |||||
| // cd repo.git | |||||
| // git init --bare | |||||
| // cd localrepo | |||||
| // git remote rename origin githubclone | |||||
| // git remote add origin //172.16.0.27/repos/repo.git | |||||
| // git push origin master | |||||
| var repo = processedArgs._[1]; | |||||
| var defaultRepoServer = '//172.16.0.27/repos' | |||||
| var sequentialTaskShellCommands = []; | |||||
| if(!existsSync(`Z:/${repo}.git`)){ | |||||
| sequentialTaskShellCommands = [ | |||||
| // ['net', ['use', 'Z:', defaultRepoServer.replace('/','\\')], { | |||||
| // inherit : true, shell: true | |||||
| // , env: process.env | |||||
| // }] | |||||
| ['pwd', { cwd : 'Z:', inherit : true}] | |||||
| , ['mkdir', [`${repo}.git`], { | |||||
| cwd : `Z:` | |||||
| , inherit : true, shell: true | |||||
| , env: process.env | |||||
| }] | |||||
| , ['pwd', { cwd : `Z:/${repo}.git`, inherit : true}] | |||||
| , ['git', ['init', '--bare'], { cwd : `Z:/${repo}.git` | |||||
| , inherit : true, shell: true | |||||
| , env: process.env | |||||
| }] | |||||
| , ['git', ['remote', 'rename', 'origin', 'githubclone'], { cwd : `${repo}`}, (err)=>{ | |||||
| console.log('Ignoring origin rename error : ' + err); return true; //return true to continue. | |||||
| } ] // PB ; Todo -- new repositories created locally will not have origin. Handle this failure. | |||||
| , ['git', ['remote', 'add', 'origin', `${defaultRepoServer}/${repo}.git`], { cwd : `${repo}`}] | |||||
| ] | |||||
| if(!existsSync(`Z:`)){ | |||||
| sequentialTaskShellCommands.splice(0,0, ['net', ['use', 'Z:', defaultRepoServer.replace(/\//gm,'\\')], { | |||||
| inherit : true, shell: true | |||||
| , env: process.env | |||||
| }]) | |||||
| console.warn('Adding network drive z: for repo server. ' + sequentialTaskShellCommands[0]) | |||||
| // throw 'done' | |||||
| } | |||||
| } | |||||
| sequentialTaskShellCommands.push(['git', ['push', 'origin', 'master'], { cwd : `${repo}`}]) | |||||
| // console.dir(sequentialTaskShellCommands); | |||||
| var tasks = []; | |||||
| sequentialTaskShellCommands.forEach(shellcmd => { | |||||
| // console.log(shellcmd) | |||||
| tasks.push(()=>{ | |||||
| var p = nodeShellExec.apply(null, shellcmd.slice(0,3)).catch((e)=>{ if(shellcmd[3]) { return shellcmd[3]() } else { console.error(e);} }) | |||||
| return p; | |||||
| }) | |||||
| }) | |||||
| any(tasks); | |||||
| } | |||||
| , 'pull' : (label) => { | , 'pull' : (label) => { | ||||
| var env = Object.assign({}, process.env); // Shallow clone it. | var env = Object.assign({}, process.env); // Shallow clone it. | ||||
| // console.dir(env) | // console.dir(env) | ||||
| function nodeShellExec() { | function nodeShellExec() { | ||||
| var args = Array.from(arguments); | var args = Array.from(arguments); | ||||
| args[2] ? null : args[2] = {} | |||||
| args[2].title ? null : args[2].title = `${args[0]} ${args[1]}` | |||||
| const child = spawn(...arguments); | const child = spawn(...arguments); | ||||
| return new Promise(function(resolve, reject){ | return new Promise(function(resolve, reject){ |