| 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														var repolog = require('./repolog') | 
														 | 
														 | 
														var repolog = require('./repolog') | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														var path = require('path'); | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														var utils = require('bbhverse'); | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														var any = utils.any;               | 
													
													
												
													
														 | 
														 | 
														// 'use strict'; | 
														 | 
														 | 
														// 'use strict'; | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														// PB : TODO -- make sure folder context is proper coz we can now run elxr from anywhere. | 
														 | 
														 | 
														// PB : TODO -- make sure folder context is proper coz we can now run elxr from anywhere. | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														const { existsSync } = require('fs'); | 
														 | 
														 | 
														const { existsSync } = require('fs'); | 
													
													
												
													
														 | 
														 | 
														const fs = require('fs') | 
														 | 
														 | 
														const fs = require('fs') | 
													
													
												
													
														 | 
														 | 
														const { spawn, spawnSync } = require('child_process'); | 
														 | 
														 | 
														const { spawn, spawnSync } = require('child_process'); | 
													
													
												
													
														 | 
														 | 
														const cliargs = require('../elxr/cliargs'); // Use minimist... | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														const cliargs = utils.cliargs; | 
													
													
												
													
														 | 
														 | 
														const processedArgs = cliargs(process.argv.slice(2)); | 
														 | 
														 | 
														const processedArgs = cliargs(process.argv.slice(2)); | 
													
													
												
													
														 | 
														 | 
														console.dir(processedArgs) | 
														 | 
														 | 
														console.dir(processedArgs) | 
													
													
												
													
														 | 
														 | 
														var globSync = require('glob').sync; | 
														 | 
														 | 
														var globSync = require('glob').sync; | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														  , 'https://git.bbh.org.in' | 
														 | 
														 | 
														  , 'https://git.bbh.org.in' | 
													
													
												
													
														 | 
														 | 
														  , '//172.16.0.27/repos' | 
														 | 
														 | 
														  , '//172.16.0.27/repos' | 
													
													
												
													
														 | 
														 | 
														] | 
														 | 
														 | 
														] | 
													
													
												
													
														 | 
														 | 
														var defaultRepoServer = reposervers[1] | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														var defaultRepoServer = reposervers[0] | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														var currentGitAuthUser ; // nodeShellExec('git', ['config', 'user.email']) ... PB : TODO-- get the current gittea username  | 
														 | 
														 | 
														var currentGitAuthUser ; // nodeShellExec('git', ['config', 'user.email']) ... PB : TODO-- get the current gittea username  | 
													
													
												
													
														 | 
														 | 
														var defaultRepoOwner = 'chess';  | 
														 | 
														 | 
														var defaultRepoOwner = 'chess';  | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														// Serialize a set of functions that will execute to return a promises one after the other. | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														// Will stop when any one fails unless continueOnFailure is true. | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														// All tasks in iterables can be functions or promises.  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														// promises as usual can return other promises or resolve to either truthy or falsy values. | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														// functions must return a promise  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														function any(iterable, continueOnFailure) { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														  return iterable.reduce(  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														      (p, fn, i ,a) => { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          // console.log('accumulator :'); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          // console.log(p); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          if(Promise.resolve(p) === p ) { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														            return p.then((pVal) => { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              // Falsy values are task failure. | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              if(!pVal) { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                console.warn('Possible failure for result : ' + pVal) | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                console.warn(a[i-1]) | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                fn ? console.error("Fn : " + fn.toString()) : null; | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              // Truthy values are failures if obj has error=true. | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              if(pVal && pVal.error) { console.error('Failed : ' + pVal.message + ' ' + pVal) } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              if(Promise.resolve(pVal) === pVal) { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                // Passed in function retured a promise. We still need to wait for it. | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                pVal.then((pVal)=>{ | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  // console.log('Then --pVal = ' + pVal + ' bContinue = ' +  continueOnFailure ); console.log(p);   | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  if(!pVal && !continueOnFailure) { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                    console.error(`E1 : i = ${i} : pVal :` + pVal); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                    console.error('debugData 2 -------------------'); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                     | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                    console.log("Cancelling remaining..."); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                    throw 'Failed in reduce 1 ' | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  if(!fn && !continueOnFailure) { console.error('Error : No task specified.'); throw false;} | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  else if(!fn) return false; | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  return (Promise.resolve(fn) === fn ) ? fn : fn() ; | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                }) | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              else { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                // We will stop on null resolved values on any one task unless continueOnFailure is true. | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                // console.log('Then --pVal = ' + pVal + ' bContinue = ' +  continueOnFailure ); console.log(p);   | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                if(!pVal && !continueOnFailure) { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  console.error(`E2 : i = ${i} : pVal :` + pVal); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  console.error('debugData 2 -------------------'); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                   | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  console.log("Cancelling remaining..."); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                  throw 'Failed in reduce 2 ' | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                if(!fn && !continueOnFailure) { console.error('Error : No task specified.'); throw false;} | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                else if(!fn) return false; | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														                return (Promise.resolve(fn) === fn ) ? fn : fn() ; | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														               | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														               | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														            }).catch((error) => {  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              console.error(`E3 : i = ${i} `); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              fn ? console.error("Fn : " + fn.toString()) : null; | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              console.error('debugData 3-------------------------'); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              throw 'Failed in reduce 3 '               | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														            })  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          else if(!p) { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														            console.log("Bypass on failure"); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														            return false; | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          }  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														      } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														      , Promise.resolve(true) | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														  ); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														} | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														var __isElevated = null; | 
														 | 
														 | 
														var __isElevated = null; | 
													
													
												
													
														 | 
														 | 
														var isRunningElevated = ()=>{ | 
														 | 
														 | 
														var isRunningElevated = ()=>{ | 
													
													
												
													
														 | 
														 | 
														    if(__isElevated === null) { | 
														 | 
														 | 
														    if(__isElevated === null) { | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														  , 'loopback-jsonapi-model-serializer' | 
														 | 
														 | 
														  , 'loopback-jsonapi-model-serializer' | 
													
													
												
													
														 | 
														 | 
														  , 'elixir-config-development' | 
														 | 
														 | 
														  , 'elixir-config-development' | 
													
													
												
													
														 | 
														 | 
														  , 'elixir-config-test' | 
														 | 
														 | 
														  , 'elixir-config-test' | 
													
													
												
													
														 | 
														 | 
														  , 'cihsr-config' | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														  , 'cihsr-config-development' | 
													
													
												
													
														 | 
														 | 
														  , 'cihsr-data' | 
														 | 
														 | 
														  , 'cihsr-data' | 
													
													
												
													
														 | 
														 | 
														  , 'elixir-data' | 
														 | 
														 | 
														  , 'elixir-data' | 
													
													
												
													
														 | 
														 | 
														  , 'loopback-connector-ds' | 
														 | 
														 | 
														  , 'loopback-connector-ds' | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														        var options = {  cwd : repo } | 
														 | 
														 | 
														        var options = {  cwd : repo } | 
													
													
												
													
														 | 
														 | 
														        // console.log(repo) | 
														 | 
														 | 
														        // console.log(repo) | 
													
													
												
													
														 | 
														 | 
														        return [ | 
														 | 
														 | 
														        return [ | 
													
													
												
													
														 | 
														 | 
														          ['git', ['remote', 'add', 'chess', 'http://git.bbh/chess/elxr.git'], {  cwd : repo }] | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          ['git', ['remote', 'add', 'chess', `${defaultRepoServer}/${user}/${repo}.git`], {  cwd : repo }] | 
													
													
												
													
														 | 
														 | 
														        , ['git', ['remote', 'set-url', '--push', 'chess', 'no-pushing'], {  cwd : repo }] | 
														 | 
														 | 
														        , ['git', ['remote', 'set-url', '--push', 'chess', 'no-pushing'], {  cwd : repo }] | 
													
													
												
													
														 | 
														 | 
														        , ['git', ['remote', 'set-url', 'origin', `http://git.bbh/${user}/${repo}.git`], {  cwd : repo }] | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        , ['git', ['remote', 'set-url', 'origin', `${defaultRepoServer}/${user}/${repo}.git`], {  cwd : repo }] | 
													
													
												
													
														 | 
														 | 
														      ]} | 
														 | 
														 | 
														      ]} | 
													
													
												
													
														 | 
														 | 
														      var x = (args)=>{ | 
														 | 
														 | 
														      var x = (args)=>{ | 
													
													
												
													
														 | 
														 | 
														        return ()=>{ | 
														 | 
														 | 
														        return ()=>{ | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														        if(0){ | 
														 | 
														 | 
														        if(0){ | 
													
													
												
													
														 | 
														 | 
														          // PB : TODO -- Special google chrome profile for tests etc. | 
														 | 
														 | 
														          // PB : TODO -- Special google chrome profile for tests etc. | 
													
													
												
													
														 | 
														 | 
														          nodeShellExec('pwd', { inherit : true}); | 
														 | 
														 | 
														          nodeShellExec('pwd', { inherit : true}); | 
													
													
												
													
														 | 
														 | 
														          //$ "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 1" http://localhost:4200/tests/index.html?grep=loopback | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // /c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe --user-data-dir=/c/chess/instances/elixir_01/data/Google/Chrome/User\ Data --profile-directory="chess" | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="C:\chess\instances\elixir_01\data\Google\Chrome\User Data" --profile-directory="chess" http://localhost:4200/admin/crud/create/item | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          // "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir="C:\chess\instances\elixir_01\data\Google\Chrome\User Data" --profile-directory="chess" http://localhost:4200/tests/index.html?grep=loopback | 
													
													
												
													
														 | 
														 | 
														          nodeShellExec("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe", [ | 
														 | 
														 | 
														          nodeShellExec("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe", [ | 
													
													
												
													
														 | 
														 | 
														              "--profile-directory=Profile 1" | 
														 | 
														 | 
														              "--profile-directory=Profile 1" | 
													
													
												
													
														 | 
														 | 
														            , 'http://localhost:4200/tests/index.html?grep=model convert ember to loopback' + '&filter=none' /*+ '&filter=model convert ember to loopback'*/]); | 
														 | 
														 | 
														            , 'http://localhost:4200/tests/index.html?grep=model convert ember to loopback' + '&filter=none' /*+ '&filter=model convert ember to loopback'*/]); | 
													
													
												
											
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          // nodeShellExec('npm', ['init', '-y'], options); | 
														 | 
														 | 
														          // nodeShellExec('npm', ['init', '-y'], options); | 
													
													
												
													
														 | 
														 | 
														      // }) | 
														 | 
														 | 
														      // }) | 
													
													
												
													
														 | 
														 | 
														
  | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														        var g = { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          'client' : ()=>{ | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														            console.info('Creating new ember client named : ' + processedArgs._[2] ) ; | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														            var step1 = nodeShellExec('cmd', ['/c', 'ember', 'new', processedArgs._[2]], { | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              stdio: ['pipe', process.stdout, process.stderr], | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              inherit : true, | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              shell: true, | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              cwd : path.dirname(__dirname), | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														              env: env | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														            }) | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														          } | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      var g = { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        'client' : ()=>{ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          console.info('Creating new ember client named : ' + processedArgs._[2] ) ; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          var step1 = nodeShellExec('cmd', ['/c', 'ember', 'new', processedArgs._[2]], { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            stdio: ['pipe', process.stdout, process.stderr], | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            inherit : true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            shell: true, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            cwd : path.dirname(__dirname), | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            env: env | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          }) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        }, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														        'modelr' : ()=>{ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          var tasks = [ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            ()=>{ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              var p = nodeShellExec('"ember"', [ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                'g' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                , 'modelr' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                , processedArgs._[2]], { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                inherit : true, shell: true, env: process.env | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              }).then(()=>{ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                console.log('Blueprint generation complete for : ' + processedArgs._[2]) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                return true; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              }).catch((e)=>{ console.error(e) })  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              return p; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            }, | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            ()=>{  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              var chromePrefsFile = "C:\\chess\\instances\\elixir_01\\data\\Google\\Chrome\\User Data\\chess\\Preferences"; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              var chromeprefs = fs.readFileSync(chromePrefsFile, { encoding: 'utf8' }) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              chromeprefs = JSON.parse(chromeprefs) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              var previous = chromeprefs.download.default_directory; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              var parentDir = path.dirname(__dirname); | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              chromeprefs.download.default_directory = parentDir + "\\client\\app\\templates\\components\\resource"; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              fs.writeFileSync(chromePrefsFile, JSON.stringify(chromeprefs)) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              // PB : TODO -- detect where chrome is installed. | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              // PB : TODO -- set the download dir to the place where files are needed. | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              var p = nodeShellExec('"C:/Program Files (x86)/Google/Chrome/Application/chrome.exe"', [ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                '--user-data-dir="C:\\chess\\instances\\elixir_01\\data\\Google\\Chrome\\User Data"' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                , '--profile-directory="chess"' | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                , 'http://localhost:4200/admin/crud/create/' + processedArgs._[2]], { | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                inherit : true, shell: true | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                    , env: process.env | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              }).then(()=>{ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                chromeprefs.download.default_directory = previous; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                fs.writeFileSync(chromePrefsFile, JSON.stringify(chromeprefs)) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														                return true; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              }).catch((e)=>{ console.error(e) })  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              return p; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            , | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            ()=>{ | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              console.log('Browser process should have closed here....') | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														              return true; | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														            } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          ] | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														          any(tasks) | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														           | 
													
													
												
													
														 | 
														 | 
														        } | 
														 | 
														 | 
														        } | 
													
													
												
													
														 | 
														 | 
														        g[processedArgs._[1]](); | 
														 | 
														 | 
														 | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      } | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														
  | 
													
													
												
													
														 | 
														 | 
														 | 
														 | 
														 | 
														      g[processedArgs._[1]](); | 
													
													
												
													
														 | 
														 | 
														    } | 
														 | 
														 | 
														    } | 
													
													
												
													
														 | 
														 | 
														  } | 
														 | 
														 | 
														  } | 
													
													
												
													
														 | 
														 | 
														  return op[label] ? op[label]() : null; | 
														 | 
														 | 
														  return op[label] ? op[label]() : null; |