| 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														} | 
														 | 
														 | 
														} | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														var callsheltask = (args) => { return () => { return nodeShellExec.apply(null, args) } } | 
														 | 
														 | 
														var callsheltask = (args) => { return () => { return nodeShellExec.apply(null, args) } } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														var callgitbashtask = (args) => { return () => {  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  return nodeShellExec( `"${gitbash}"`, ['-c', `"${args[0]} ${args[1].join(' ')}"`], args[2]) }  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														} | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														var getTaskCheckExists = (command, options) => { | 
														 | 
														 | 
														var getTaskCheckExists = (command, options) => { | 
													
													
												
													
														 | 
														 | 
														  options = options || {} | 
														 | 
														 | 
														  options = options || {} | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														  // console.log(useGitPull)var getPullCmd = (repo, branch) => { | 
														 | 
														 | 
														  // console.log(useGitPull)var getPullCmd = (repo, branch) => { | 
													
													
												
													
														 | 
														 | 
														  // console.log(useGitPull) | 
														 | 
														 | 
														  // console.log(useGitPull) | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  // var pullCmd = [gitInstallDir | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   , ['-c', 'branch=`git rev-parse --abbrev-ref HEAD`;for i in `git remote`; do git pull $i $branch; done;'] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   , { cwd: instanceroot + '/' + repo, title: 'pull all origins for ' + repo }] | 
													
													
												
													
														 | 
														 | 
														  if(branch) { | 
														 | 
														 | 
														  if(branch) { | 
													
													
												
													
														 | 
														 | 
														    var parameters = ['-c', 'for i in `git remote`; do git pull $i ' + branch + '; done;'] | 
														 | 
														 | 
														    var parameters = ['-c', 'for i in `git remote`; do git pull $i ' + branch + '; done;'] | 
													
													
												
													
														 | 
														 | 
														    var pullCmd = [ gitbash | 
														 | 
														 | 
														    var pullCmd = [ gitbash | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														  // git branch --set-upstream-to=elixir-unc/master master | 
														 | 
														 | 
														  // git branch --set-upstream-to=elixir-unc/master master | 
													
													
												
													
														 | 
														 | 
														  // git push --set-upstream elixir-unc branch.. | 
														 | 
														 | 
														  // git push --set-upstream elixir-unc branch.. | 
													
													
												
													
														 | 
														 | 
														  , 'set-url': (remotename, url) => { | 
														 | 
														 | 
														  , 'set-url': (remotename, url) => { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    // git remote set-url elixir-unc //10.10.5.60/gitrepo/chess/bbhverse | 
													
													
												
													
														 | 
														 | 
														    var pushable = processedArgs.pushable || false; | 
														 | 
														 | 
														    var pushable = processedArgs.pushable || false; | 
													
													
												
													
														 | 
														 | 
														    remotename = remotename || processedArgs._[1] | 
														 | 
														 | 
														    remotename = remotename || processedArgs._[1] | 
													
													
												
													
														 | 
														 | 
														    url = url || processedArgs._[2] | 
														 | 
														 | 
														    url = url || processedArgs._[2] | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														      if (pushable) { | 
														 | 
														 | 
														      if (pushable) { | 
													
													
												
													
														 | 
														 | 
														        return [ | 
														 | 
														 | 
														        return [ | 
													
													
												
													
														 | 
														 | 
														          ['git', ['remote', 'set-url', remotename, url + '/' + repo], { cwd: instanceroot + '/' + repo }] | 
														 | 
														 | 
														          ['git', ['remote', 'set-url', remotename, url + '/' + repo], { cwd: instanceroot + '/' + repo }] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          , ['git', ['remote', `set-url`, '--push', remotename, url + '/' + repo], { cwd: instanceroot + '/' + repo }] | 
													
													
												
													
														 | 
														 | 
														        ] | 
														 | 
														 | 
														        ] | 
													
													
												
													
														 | 
														 | 
														      } | 
														 | 
														 | 
														      } | 
													
													
												
													
														 | 
														 | 
														      else { | 
														 | 
														 | 
														      else { | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														    } | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var x = (args) => { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      return () => { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        // console.log(args) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        return nodeShellExec.apply(null, args) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // return Promise.resolve(true) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														    var perform_git_seturl = (dir) => { | 
														 | 
														 | 
														    var perform_git_seturl = (dir) => { | 
													
													
												
													
														 | 
														 | 
														      op['is-git-repo'](dir).then((logEntry) => { | 
														 | 
														 | 
														      op['is-git-repo'](dir).then((logEntry) => { | 
													
													
												
													
														 | 
														 | 
														        any(serial_perform_git_seturl(dir.name).map(x)) | 
														 | 
														 | 
														        any(serial_perform_git_seturl(dir.name).map(x)) | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														    var perform_git_remove = (dir) => { | 
														 | 
														 | 
														    var perform_git_remove = (dir) => { | 
													
													
												
													
														 | 
														 | 
														      op['is-git-repo'](dir).then((logEntry) => { | 
														 | 
														 | 
														      op['is-git-repo'](dir).then((logEntry) => { | 
													
													
												
													
														 | 
														 | 
														        // console.log(code) | 
														 | 
														 | 
														        // console.log(code) | 
													
													
												
													
														 | 
														 | 
														        // if (code) { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        if (logEntry.success) { | 
													
													
												
													
														 | 
														 | 
														          nodeShellExec('git', ['remote', 'get-url', remotename], { cwd: dir.name, stdio: 'ignore' }).then(() => { | 
														 | 
														 | 
														          nodeShellExec('git', ['remote', 'get-url', remotename], { cwd: dir.name, stdio: 'ignore' }).then(() => { | 
													
													
												
													
														 | 
														 | 
														            any(serial_perform_git_remove(dir.name).map(x)) | 
														 | 
														 | 
														            any(serial_perform_git_remove(dir.name).map(x)) | 
													
													
												
													
														 | 
														 | 
														          }) | 
														 | 
														 | 
														          }) | 
													
													
												
													
														 | 
														 | 
														            .catch((e) => { | 
														 | 
														 | 
														            .catch((e) => { | 
													
													
												
													
														 | 
														 | 
														              console.log('skipped : ' + dir.name + ', reason : No remote named origin') | 
														 | 
														 | 
														              console.log('skipped : ' + dir.name + ', reason : No remote named origin') | 
													
													
												
													
														 | 
														 | 
														            }) | 
														 | 
														 | 
														            }) | 
													
													
												
													
														 | 
														 | 
														        // } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        } | 
													
													
												
													
														 | 
														 | 
														        // else console.log('Skipped : Not a Git Repo : ' + dir.name) | 
														 | 
														 | 
														        // else console.log('Skipped : Not a Git Repo : ' + dir.name) | 
													
													
												
													
														 | 
														 | 
														      }).catch((e) => { | 
														 | 
														 | 
														      }).catch((e) => { | 
													
													
												
													
														 | 
														 | 
														        console.log('Failed : ' + dir.name) | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        // console.log('Failed : ' + dir.name) | 
													
													
												
													
														 | 
														 | 
														      }) | 
														 | 
														 | 
														      }) | 
													
													
												
													
														 | 
														 | 
														    } | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														    else return op['runas']() | 
														 | 
														 | 
														    else return op['runas']() | 
													
													
												
													
														 | 
														 | 
														  } | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  , 'repo-relocate' : function(args){ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    // relocate a subfolder in source repo to same subfolder in target repo with history.  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var args = args || { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        remotebase : processedArgs._[4] || 'http://git.bbh/chess/' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , folder : processedArgs._[3] || 'server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , sourcerepo : processedArgs._[2] || 'client' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , targetrepo : processedArgs._[1] || 'elixir-server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var sourcerepooptions = { cwd: `${instanceroot}/relocate/${args.sourcerepo}` | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // , stdio: ['pipe', process.stdout, process.stderr] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , inherit: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        shell: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        env: process.env | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , runas: processedArgs.runas | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    return op['repo-split'](args).then(()=>{ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      return op['repo-merge'](args).then(()=>{ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														         | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        // cleanup folder from source. | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        var cmdseq = [ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            ['rm', ['-rf', `${args.folder}`], sourcerepooptions ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // commits have to intentional... | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // , ['git', ['commit', '-a', '-m', `relocate folder ${args.folder} to ${targetrepo}`], sourcerepooptions ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        return any(cmdseq.map(callsheltask)) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      }) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    }).catch(e=>{console.error(e)}) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  , 'repo-split' : function(args) { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    // https://gist.github.com/smdabdoub/17065c348289158277b5 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    /** | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     * Eg : folder, remotebase, sourcerepo, targetrepo | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     *  args.folder = 'server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     *  args.remotebase = 'https://git.bbh/chess/' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     *  args.sourcerepo = 'client' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     *  args.targetrepo = 'elixir-server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     */ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var args = args || { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        folder : 'server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , remotebase : 'http://git.bbh/chess/' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , sourcerepo : 'client' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , targetrepo : 'elixir-server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var options = { cwd: `${instanceroot}/relocate` | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // , stdio: ['pipe', process.stdout, process.stderr] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      ,  inherit: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        shell: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        env: process.env | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , runas: processedArgs.runas | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var cmdseq = [ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        // create a temporary working dir in current folder where we started execution. | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        ['mkdir', [ '-p', 'relocate']] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , ['git', ['clone', `${args.remotebase}${args.sourcerepo}`], options ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , ['git', ['clone', `${args.sourcerepo}`, `relocate-${args.sourcerepo}-${args.folder}`], options] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , ['git', ['clone', `${args.remotebase}${args.targetrepo}`, `relocate-${args.targetrepo}-${args.folder}`], options] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														       | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    return any(cmdseq.map(callsheltask)).then(() => {  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // , ['git', ['subtree', 'split', '-P', `${args.folder}`, '-b', `relocate-${args.sourcerepo}-${args.folder}`], sourcerepooptions]  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        // split doesnt retain folder structure we need to move and commit ourselves through a branch to retain history...  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // , ['git', [`checkout relocate-${args.sourcerepo}-${args.folder}`], sourcerepooptions]  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // , ['mkdir', [`${args.folder}`], sourcerepooptions] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // , ['git', ['mv', `!(${args.folder})`, `${args.folder}`], sourcerepooptions ] // requires  shopt -s extglob | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // , ['git', ['commit', `-m`, 'Moved to same subfolder after subtree split in branch'] , sourcerepooptions] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														           | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														       | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // subtree split and filter-branch are options. We currently use repo-filter.  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      return  op['filter-repo'](args) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    }).catch(e=>{console.error(e); throw 'failed'}) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  , 'repo-merge' : function(args) { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    // Merge source repo into target repo | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var args = args || { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        folder : 'server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , remotebase : 'http://git.bbh/chess/' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , sourcerepo : 'client' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , targetrepo : 'elixir-server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var sourcerepooptions = { cwd: `${instanceroot}/relocate/relocate-${args.sourcerepo}-${args.folder}` | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // , stdio: ['pipe', process.stdout, process.stderr] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , inherit: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        shell: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        env: process.env | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , runas: processedArgs.runas | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var targetrepooptions = { cwd: `${instanceroot}/relocate/relocate-${args.targetrepo}-${args.folder}`  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // , stdio: ['pipe', process.stdout, process.stderr] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , inherit: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        shell: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        env: process.env | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      , runas: processedArgs.runas | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var cmdseq = [ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        ['git', ['pull', `../relocate-${args.sourcerepo}-${args.folder}`, `master`, '--allow-unrelated-histories']  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          , targetrepooptions ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // , ['git', ['push', targetrepooptions ] // manual push for now.. | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    return any(cmdseq.map(callsheltask)).catch(e=>{console.error(e)}) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  , 'filter-repo' : function(args){ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      // Merge source repo into target repo | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      var args = args || { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          folder : 'server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        , remotebase : 'http://git.bbh/chess/' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        , targetrepo : 'elixir-server' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														   | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      var targetrepooptions = { cwd: `${instanceroot}/relocate/relocate-${args.sourcerepo}-${args.folder}`  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        , inherit: true, shell: true | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        , env: process.env | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        , runas: processedArgs.runas | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      var cmdseq = [ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        // git checkout -b feature/merge-old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              // git remote add src-project ../src-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        ['git', ['filter-repo', '--path', `${args.folder}`], targetrepooptions ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      return any(cmdseq.map(callsheltask)).catch(e=>{console.error(e); throw 'failed' }) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  , 'filter-branch' : function(preservefolder, repo){ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    // https://stackoverflow.com/questions/359424/detach-move-subdirectory-into-separate-git-repository | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    // git subtree split -P <name-of-folder> -b <name-of-new-branch> | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    // Preserve a specific folder. | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    // PB : TODO -- filter-branch has known issues. Explore subtree and filter-repo... | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    /* | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    git clone repo reposplit | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    git filter-branch --tag-name-filter cat --prune-empty --subdirectory-filter {{folder}} -- --all  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    git remote rm origin | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    */ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    throw 'filter-repo-history not yet implmented pls refer to manual commands in code.' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  // , 'repo-merge-folder' : function(mergetarget, mergesource, mergefolder){ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   // Merge repo2 into a subfolder in repo1 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   // https://alexharv074.github.io/puppet/2017/10/04/merge-a-git-repository-and-its-history-into-a-subdirectory-of-a-second-git-repository.html | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   // https://thoughts.t37.net/merging-2-different-git-repositories-without-losing-your-history-de7a06bba804 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   /* | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     cd repo1 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git remote add -f tempmergesource ../{{mergesource}}/.git | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git merge -s ours --no-commit tempmergesource/master --allow-unrelated-histories | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git read-tree --prefix={{mergefolder}} -u tempmergesource/master: | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git commit | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     // Repair History | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     // === git filter-branch --tree-filter '(echo === $GIT_COMMIT:; git ls-tree $GIT_COMMIT) >> /tmp/tree.log' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														           | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //             #!/usr/bin/env bash | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                       first=ed4f16becc2f03820c164e0617bb98f12ff49ef0 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                       last=038e26e21bd60fa265d6637261f3bc918780d2e8 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                       subdir=server | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                       git filter-branch --tree-filter ' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         first='"$first"' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         last='"$last"' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         subdir='"$subdir"' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         log_file=/tmp/filter.log | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         [ "$GIT_COMMIT" = "$first" ] && seen_first=true | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         if [ "$seen_first" = "true" ] && [ "$seen_last" != "true" ]; then | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                           echo "=== $GIT_COMMIT: making changes" | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                           files=$(git ls-tree --name-only $GIT_COMMIT) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                           mkdir -p $subdir | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                           for i in $files; do | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                             mv $i $subdir || echo "ERR: mv $i $subdir failed" | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                           done | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         else | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                           echo "=== $GIT_COMMIT: ignoring" | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         fi \ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                           >> $log_file | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         [ "$GIT_COMMIT" = "$last" ] && seen_last=true | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                         status=0  # tell tree-filter never to fail | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //                       ' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git remote rm tempmergesource | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   */ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   // better alternative for history | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   /** | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //    *  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git clone git@server.com:old-project.git | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git clone git@server.com:new-project.git | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     cd old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     mkdir old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git mv !(old-project) old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     ls -la and gt mv hidden files .... | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git commit -a -S -m “Moving old project into its own subdirectory” | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														     | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     cd ../new-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git remote add old-project ../old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git fetch old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git checkout -b feature/merge-old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git merge -S --allow-unrelated-histories old-project/master | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git push origin feature/merge-old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //     git remote rm old-project | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   */   | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  //   throw 'merge-repos not yet implmented pls refer to manual commands in code.' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  // } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														  , 'pull' : (label) => { | 
														 | 
														 | 
														  , 'pull' : (label) => { | 
													
													
												
													
														 | 
														 | 
														    // Usage : | 
														 | 
														 | 
														    // Usage : | 
													
													
												
													
														 | 
														 | 
														    // elxr pull -- Defaults to run config | 
														 | 
														 | 
														    // elxr pull -- Defaults to run config | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														    var performCloneAndCheckout = null; | 
														 | 
														 | 
														    var performCloneAndCheckout = null; | 
													
													
												
													
														 | 
														 | 
														    // cant use git checkout -b it fails when branch already exists. | 
														 | 
														 | 
														    // cant use git checkout -b it fails when branch already exists. | 
													
													
												
													
														 | 
														 | 
														    var performCheckout = performCloneAndCheckout = (def) => { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														      if (excludeCheckouts[def.repo]) return Promise.resolve({ 'skipped': true }) | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    var performCheckout = performCloneAndCheckout = (def) => {if (excludeCheckouts[def.repo]) return Promise.resolve({ 'skipped': true }) | 
													
													
												
													
														 | 
														 | 
														       | 
														 | 
														 | 
														       | 
													
													
												
													
														 | 
														 | 
														      return performPullOrCloneForBranch(def).then(()=>{ | 
														 | 
														 | 
														      return performPullOrCloneForBranch(def).then(()=>{ | 
													
													
												
													
														 | 
														 | 
														        nodeShellExec('git', ['checkout', def.branch || checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV], { | 
														 | 
														 | 
														        nodeShellExec('git', ['checkout', def.branch || checkoutMap[runconfig.NODE_ENV] || runconfig.NODE_ENV], { | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														    var g = { | 
														 | 
														 | 
														    var g = { | 
													
													
												
													
														 | 
														 | 
														      'client': () => { | 
														 | 
														 | 
														      'client': () => { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        // ember new --skip-bower --no-welcome --skip-git -b {{blueprint}}  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														        console.info('Creating new ember client named : ' + processedArgs._[2]); | 
														 | 
														 | 
														        console.info('Creating new ember client named : ' + processedArgs._[2]); | 
													
													
												
													
														 | 
														 | 
														        var step1 = nodeShellExec('cmd', ['/c', 'ember', 'new', processedArgs._[2]], { | 
														 | 
														 | 
														        var step1 = nodeShellExec('cmd', ['/c', 'ember', 'new', processedArgs._[2]], { | 
													
													
												
													
														 | 
														 | 
														          stdio: ['pipe', process.stdout, process.stderr], | 
														 | 
														 | 
														          stdio: ['pipe', process.stdout, process.stderr], | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														  } | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														} | 
														 | 
														 | 
														} | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														var util = require('util') | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														var util = require('util'); | 
													
													
												
													
														 | 
														 | 
														var cliname = 'elxr'; | 
														 | 
														 | 
														var cliname = 'elxr'; | 
													
													
												
													
														 | 
														 | 
														var ver = '1.1'; | 
														 | 
														 | 
														var ver = '1.1'; | 
													
													
												
													
														 | 
														 | 
														var help = `# list of commands... please refer dveloper documentation for ${cliname} | 
														 | 
														 | 
														var help = `# list of commands... please refer dveloper documentation for ${cliname} | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														  var noprerequisites = { | 
														 | 
														 | 
														  var noprerequisites = { | 
													
													
												
													
														 | 
														 | 
														    add : true | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    add : true, 'set-url' : true, 'repo-relocate' : true | 
													
													
												
													
														 | 
														 | 
														  } | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														  var skipprereqs = {} | 
														 | 
														 | 
														  var skipprereqs = {} | 
													
													
												
													
														 | 
														 | 
														  var maintask = () => { | 
														 | 
														 | 
														  var maintask = () => { | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														  var min = runtimestamp; | 
														 | 
														 | 
														  var min = runtimestamp; | 
													
													
												
													
														 | 
														 | 
														  var collect = [] | 
														 | 
														 | 
														  var collect = [] | 
													
													
												
													
														 | 
														 | 
														   | 
														 | 
														 | 
														   | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  if(noprerequisites[processedArgs._[0]] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    || skipprereqs[processedArgs._[0]] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  ) { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														    return op[processedArgs._[0]]() | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														  return detectInstance().then((detectedInstance)=>{ | 
														 | 
														 | 
														  return detectInstance().then((detectedInstance)=>{ | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  |