| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 | 
							- 
 - // --------------
 - // elxr 
 - //   A cli tool for elixr.
 - const { spawn } = require('child_process');
 - const cliargs = require('../elxr/cliargs'); // Use minimist...
 - const processedArgs = cliargs(process.argv.slice(2));
 - console.dir(processedArgs)
 - 
 - var path = require('path')
 - 
 - var cli = 'elxr';
 - var ver = '#unversioned'; 
 - var help = '#unkown list of commands... please refer dveloper documentation for ' + cli;
 - 
 - // grep -qxF 'alias elxr="node elxr/index.js"'  ~/.bash_profile || echo 'alias elxr="node elxr/index.js"' >> ~/.bash_profile
 - 
 - 
 - // nodeShellExec('echo', ['elxr'], { inherit : true}) //, {stdio: "inherit"}
 - 
 - var dbForLabel = function(label){
 -   var dbsForLabel = {
 -       devmysql : 'mysql'
 -     , development : 'mssql'
 -     , production : 'mssql'
 -   }
 -   return dbsForLabel[label] || 'mysql'
 - }
 - 
 - var env = Object.assign({}, process.env); // Shallow clone it.
 - var __runcmd = function(label){
 - 
 -   var op = {
 -       'h' : ()=>{ console.log(cli + ' ' + ver + ' ' + help); return '-h' }
 -     , 'upgrade' : ()=>{
 -       console.log('Running exlr upgrade in : ' + path.dirname(__dirname))
 -       console.log('Currently only upgrades ember : ' + path.dirname(__dirname));
 -       console.info('Uninstalling existing ember globally') ;
 -       var step1 = nodeShellExec('cmd', ['/c', 'npm', 'uninstall', '-g', 'ember-cli'], {
 -           stdio: ['pipe', process.stdout, process.stderr],
 -           inherit : true,
 -           shell: true,
 -           cwd : path.dirname(__dirname),
 -           env: env
 -         })
 -         step1.on('close', ()=>{
 -           console.info('Installing ember globally') ;
 -           var step2 = nodeShellExec('cmd', ['/c', 'npm', 'install', '-g', 'ember-cli'], {
 -             stdio: ['pipe', process.stdout, process.stderr],
 -             inherit : true,
 -             shell: true,
 -             cwd : path.dirname(__dirname),
 -             env: env
 -           })
 -           
 -           step2.on('close', ()=>{
 -             nodeShellExec('cmd', ['/c', 'ember', '--version'], {
 -               stdio: ['pipe', process.stdout, process.stderr],
 -               inherit : true,
 -               shell: true,
 -               cwd : path.dirname(__dirname),
 -               env: env
 -             })
 -           })
 -         })
 -       }
 -     , 'pull' : (label) => {
 -       var env = Object.assign({}, process.env); // Shallow clone it.
 -       // console.dir(env)
 -       console.log('Running exlr pull : ' + path.dirname(__dirname))
 -       nodeShellExec('cmd', ['/c', 'setup\\utility\\chess.bat', 'pull'], {
 -       // nodeShellExec('cmd', ['/c', '..\\setup\\utility\\chess.bat', 'pull'], {
 -         stdio: ['pipe', process.stdout, process.stderr],
 -         inherit : true,
 -         shell: true,
 -         cwd : path.dirname(__dirname),
 -         env: env
 -       })
 -     }
 -     , 'start' : (label)=>{ 
 -       console.log('Starting Elixir Server.');
 -       var env = Object.assign({}, process.env); // Shallow clone it.
 -       // console.dir(env)
 -       env.NODE_ENV = label || 'development';
 -       env.DEBUG = 'loopback:connector:' + dbForLabel(label)
 -       
 -       nodeShellExec('node', ['--inspect=9228', 'elixir/server.js'], {
 -         inherit : true,
 -         shell: true, detached: true,
 -         cwd : 'elixir-server',
 -         env: env
 -       })
 - 
 -       nodeShellExec('node', ['--inspect=9227', 'elixr/server.js'], {
 -         inherit : true,
 -         shell: true, detached: true,
 -         cwd : 'elixir-server',
 -         env: env
 -       })
 -       
 -       // nodeShellExec('node', ['--inspect=9226', ' bin/www'], {
 -       //   inherit : true, 
 -       //   shell: true, detached: true,
 -       //   cwd : 'qms/server',
 -       //   env: env,
 -       //   shell : true
 -       // })
 - 
 -       nodeShellExec('ember', ['s'], {
 -         inherit : true, 
 -         shell: true, detached: true,
 -         cwd : 'client/',
 -         env: env
 -       })
 -     }
 -     , 'g' : ()=>{
 -       if(processedArgs.h) { 
 - 
 -         console.log('elxr g [modelname] => generate a model named [modelname]'); 
 -         console.log('elxr g => regenerate all known models'); 
 -         return 
 -       }
 -       // var child = nodeShellExec('mkdir', ['-p', label], { inherit : true} );
 -       // console.log('Starting directory: ' + process.cwd());
 -       // try {
 -       //     child = child.on('close', () => { process.chdir(label) } );
 -       //     console.log('New directory: ' + process.cwd()); 
 -       // }
 -       // catch (err) {
 -       //     console.log('chdir: ' + err);
 -       // }
 -       // child.on('close', function(){
 -           // var options = {
 -           //       shell : true 
 -           //     , inherit : true
 -           //     // , cwd : '' + process.cwd
 -           //     // , env : process.env
 -           // };
 -           // nodeShellExec('git', ['init'], { inherit : true});
 -         if(0){
 -           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
 -           nodeShellExec("C:/Program Files (x86)/Google/Chrome/Application/chrome.exe", [
 -               "--profile-directory=Profile 1"
 -             , '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
 -             })
 -           }
 -         }
 -         g[processedArgs._[1]]();
 -     }
 -   }
 -   return op[label] ? op[label]() : op['start'](label);
 - } 
 - 
 - // mysqldump --add-drop-table --no-data -u root -p db_name | grep 'DROP TABLE' ) > drop_all_tables.sql
 - // mysql -u root -p db_name < drop_all_tables.sql
 - 
 - var mysql = '../xampp/mysql/bin/mysql'
 - var mysqldump = '../xampp/mysql/bin/mysqldump'
 - 
 - __runcmd(processedArgs.label || processedArgs._[0] || 'h');
 - // nodeShellExec('git', ['status']);
 - 
 - function nodeShellExec() {
 - 
 -     const child = spawn(...arguments);
 - 
 -     // use child.stdout.setEncoding('utf8'); if you want text chunks
 -     // child.stdout.setEncoding('utf8');
 -     // console.log('here')
 - 
 -     // child.stdout.on('data', (chunk) => console.log(chunk));
 - 
 -     child.on('error', (chunk) => console.error(chunk));
 -     // child.stderr.pipe(process.stderr);
 - 
 -     child.on('close', (code) => console.log(`child process ${Array.from(arguments)[0]} exited with code ${code}`));
 -     return child;
 - }
 
 
  |