Browse Source

Merge branch 'master' of https://git.bbh.org.in/chess/elxr

production
pb 2 years ago
parent
commit
b8c7deb573
6 changed files with 3528 additions and 3100 deletions
  1. 1
    1
      cliverse.js
  2. 27
    23
      i.win.js
  3. 3433
    3037
      index.js
  4. 10
    3
      lin_verse.js
  5. 42
    29
      repo-manifest.js
  6. 15
    7
      win_verse.js

+ 1
- 1
cliverse.js View File

@@ -84,7 +84,7 @@ function nodeShellExec() {
}
else {
// console.log( messages.join('') )
process.stdout.write( messages.join('') )
// process.stdout.write( JSON.stringify(logEntry) )
}
}
else if(opts.evaluateResult) {

+ 27
- 23
i.win.js View File

@@ -132,14 +132,14 @@ catch(e) {
a.WriteLine("set PATH=%PATH%;" + python2path )
// a.WriteLine("set LAUNCHEDWITHENV=YES" )
var __ALIAS__STAMP__ = '9e7bebe0-1f57-11ec-8f88-778ffeea9d1b'
var __ALIAS__STAMP__ = '9e7bebe0-1f57-11ec-8f88-778ffeea9d1b'
var currentIsExlr = function() {
if(fs.FileExists('./' + __ALIAS__STAMP__)) return true
}
var runningInExlr = currentIsExlr()
if(cfn === sfn && runningInExlr) {
a.WriteLine("cd ..");
a.WriteLine("SET LAUNCHEDWITHENV=YES && cscript "+cfn+" /all:true") // PB : TODO -- Retain all script args...
a.WriteLine("cd ..");
a.WriteLine("SET LAUNCHEDWITHENV=YES && cscript "+cfn+" /all:true") // PB : TODO -- Retain all script args...
}
else {
var guesselxr = fs.FileExists(cd + './elxr/' + __ALIAS__STAMP__)
@@ -1308,9 +1308,9 @@ function __main( selectedinstance ){
return any(steps)
// return any([any(steps), any(prompts)])
}
, install : install
, postinstallsteps : function() { return sysAddPathVar('%USERPROFILE%\\AppData/Local\\Microsoft\\WindowsApps') }
, exists : exists
, install : install
, postinstallsteps : function() { return sysAddPathVar('%USERPROFILE%\\AppData/Local\\Microsoft\\WindowsApps') }
, exists : exists
}
, {
shellcmd: 'code'
@@ -1454,9 +1454,9 @@ function __main( selectedinstance ){
url: 'https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.30.0.msi' //'https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.29.0.msi'
, installer: 'mysql-installer-community-8.0.30.0.msi'
, installcmd: ['MSIEXEC.exe', ['/i'
, path.normalize(downloadsdir + '/' + 'mysql-installer-community-8.0.30.0.msi')
, path.normalize(downloadsdir + '/' + 'mysql-installer-community-8.0.30.0.msi')
//, 'ACCEPT=YES', '/passive'
]]
]]
, install : install
, exists : exists
, preinstallsteps: function() {
@@ -1516,23 +1516,23 @@ function __main( selectedinstance ){
['git', ['clone', chessRepo + '/chess/elxr'] ]
]
if(existsSyncFolder( selectedinstance.root + '\\elxr')) {
if(existsSyncFolder( selectedinstance.root + '\\elxr\\.git')) {
// PB : TODO -- use a elxr guid signature to detect more reliably folders named the same that is not us.
ifns = [ ['git', ['pull'], { cwd : selectedinstance.root + '\\elxr' } ] ]
}
else {
throw 'elxr subfolder not recognized as a git repository. Please cleanup and continue.'
}
if(existsSyncFolder( selectedinstance.root + '\\elxr')) {
if(existsSyncFolder( selectedinstance.root + '\\elxr\\.git')) {
// PB : TODO -- use a elxr guid signature to detect more reliably folders named the same that is not us.
ifns = [ ['git', ['pull'], { cwd : selectedinstance.root + '\\elxr' } ] ]
}
else console.log(selectedinstance.root + '\\elxr' + ' NOT FOUND ')
else {
throw 'elxr subfolder not recognized as a git repository. Please cleanup and continue.'
}
}
else console.log(selectedinstance.root + '\\elxr' + ' NOT FOUND ')
ifns.push(['npm', ['i'], { cwd : '.\\elxr' } ])
if(!ifns.map) ifns.map = map;
return any(ifns.map(callsheltask))['catch'](function(e){
if(e.code === 1602) {
console.warn("Installation was probably cancelled.")
}
else throw e
if(!ifns.map) ifns.map = map;
return any(ifns.map(callsheltask))['catch'](function(e){
if(e.code === 1602) {
console.warn("Installation was probably cancelled.")
}
else throw e
})
})
}
@@ -1554,6 +1554,10 @@ function __main( selectedinstance ){
, nodeShellExec('start', ['""', '"C:\\Program Files\\Git\\bin\\sh.exe"', '-c', '"node ' + (selectedinstance.root + '\\elxr\\index.js').replace(/\\/g, '/') + ' i elixir"'])
// , nodeShellExec('node', [selectedinstance.root + 'elxr\\index.js'])
])
// return any([ /*self.preinstallsteps,*/ function(){ return self.installsteps() }
// , nodeShellExec('node', [selectedinstance.root + '\\elxr\\index.js', 'init'])
// // , nodeShellExec('node', [selectedinstance.root + 'elxr\\index.js'])
// ])
}
// , exists : function(){
// console.log('Elxr PreInstallsteps called')

+ 3433
- 3037
index.js
File diff suppressed because it is too large
View File


+ 10
- 3
lin_verse.js View File

@@ -135,14 +135,21 @@ var shell_verse = {
return Promise.resolve(false).then(( elevationstate ) => {
__isElevated ? console.log('Elevated') : console.log('Not Elevated')
__isElevated = elevationstate;
shell_verse.acquireElevationState = ()=> Promise.resolve(__isElevated);
shell_verse.isElevated = () => { return Promise.resolve(__isElevated)}
return __isElevated
}).catch(() => {
__isElevated = false;
console.log('Not Elevated');
}).finally(()=>{
shell_verse.acquireElevationState = ()=> Promise.resolve(__isElevated);
shell_verse.isElevated = () => { return Promise.resolve(__isElevated)}
return __isElevated;
console.log('Not Elevated');
return __isElevated
})
// .finally(()=>{
// shell_verse.acquireElevationState = ()=> Promise.resolve(__isElevated);
// shell_verse.isElevated = () => { return Promise.resolve(__isElevated)}
// return __isElevated; // Value returned from finally is not supported by node.
// })
}

, getTaskCheckExists : cli.createTask('getTaskCheckExists', 'which')

+ 42
- 29
repo-manifest.js View File

@@ -1,6 +1,6 @@
module.exports = ((name, options)=>{

options = options || { username : ``, reposerver : `https://git.bbh.org.in` }
options = options || { username : `guest`, reposerver : `https://git.bbh.org.in`, password : `noneforguest` }
utils = options.utils

// Default set of users in main repos.
@@ -19,32 +19,40 @@ module.exports = ((name, options)=>{
'chess' : {
priority : 0,
// PB : TODO -- Handle cases where a repository url can be accessed by multiple users...
server : `${options.reposerver}`, user : options.username || '', path : ``
, get url(){ return `${this.server}/chess/${this.path}`} // fetch
server : `${options.reposerver}`, user : { username : options.username || ''}, path : ``
, get url(){ return `${this.server}/${this.owner}`} // fetch
, push : 'no-pushing'
, title : 'chess'
, get username(){ return this.user.username }
, owner : 'chess'
}
, 'chess-public' : { priority : 1,
server : `https://git.bbh.org.in`, user : options.username || '', path : ``
, get url(){ return `${this.server}/chess/${this.path}`}
server : `https://git.bbh.org.in`, user : { username : options.username || ''}, path : ``
, get url(){ return `${this.server}/${this.owner}`}
, title : 'chess-public' // PB : TODO -- rename...
, accessibility : ['public']
, push : 'no-pushing'
, get username(){ return this.user.username }
, owner : 'chess'
}
// PB : TODO -- Load private repositories from private config...
, 'chess-private' : { priority : 2,
server : `http://git.bbh`, user : options.username || '', path : ``
, get url(){ return `${this.server}/chess/${this.path}`}
server : `http://git.bbh`, user : { username : options.username || ''}, path : ``
, get url(){ return `${this.server}/${this.owner}`}
, title : 'chess-private'
, accessibility : ['private']
, push : 'no-pushing', private : true
}
, get username(){ return this.user.username }
, owner : 'chess'
}
, 'chess-github' : { priority : 3,
server : `https://github.com`, user : 'baptistdev', path : ``
, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch
server : `https://github.com`, user : { username : 'baptistdev'}, path : ``
, get url(){ return `${this.server}/${this.owner}`} // fetch
, title : 'chess-github'
, accessibility : ['public']
, push : 'no-pushing' //, external : true, public : true
, push : 'no-pushing' //, external : true, public : true
, get username(){ return this.user.username }
, owner : 'chess'
}
}
@@ -57,34 +65,45 @@ module.exports = ((name, options)=>{
utils.assign_core( { arraymergetype : utils.assign_core.DISTINCT_UNION }
, remotes
, { 'userfork' : {
priority : 1,
server : `${options.reposerver}`, user : `${options.username}`, path : ``
, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch
, title : 'userfork'
priority : 1,
server : `${options.reposerver}`, user : { username : `${options.username}`}, path : ``
, get url(){ return `${this.server}/${this.user.username}`} // fetch
, title : 'userfork'
, get username(){ return this.user.username }
, get owner(){ return this.username }
, pushable : true
}
, 'userfork-public' : {
priority : 1,
server : `https://git.bbh.org.in`, user : `${options.username}`, path : ``
, get url(){ return `${this.server}/${this.user}/${this.path}`}
server : `https://git.bbh.org.in`, user : {username : `${options.username}`}, path : ``
, get url(){ return `${this.server}/${this.user.username}`}
// PB : TODO - Other users may have access to this users repo. However that needs to be defined as a new remote
, title : 'userfork-public'
, accessibility : ['public'] /*public : true, external: true */
, get username(){ return this.user.username }
, get owner(){ return this.username }
, pushable : true
}
// PB : TODO -- Load private repositories from private config...
, 'userfork-private' : { priority : 2,
server : `http://git.bbh`, user : options.username || '', path : ``
, get url(){ return `${this.server}/${options.username}/${this.path}`}
server : `http://git.bbh`, user : { username : options.username || ''}, path : ``
, get url(){ return `${this.server}/${this.user.username}`}
, title : 'userfork-private'
, accessibility : ['private']
}
, get username(){ return this.user.username }
, get owner(){ return this.username }
}
, 'userfork-unc' : {
priority : 3,
server : `//172.16.0.27/repos`, user : `${options.username}`, path : ``
, get url(){ return `${this.server}/${this.user}/${this.path}`} // fetch
server : `//172.16.0.27/repos`, user : { username : `${options.username}`}, path : ``
, get url(){ return `${this.server}/${this.user.username}`} // fetch
, title : 'userfork-unc'
, accessibility : ['unc']
// , unc : true, private : true
}
, get username(){ return this.user.username }
, get owner(){ return this.username }
, pushable : true
}
}
)
}
@@ -142,12 +161,6 @@ module.exports = ((name, options)=>{
reposervers : Object.keys(reposerverinstances)
, reposerverinstances
, remotes
, get reposindexed(){
// PB : TODO -- Implement -- One time gettor and then cached...
var indexed = {}
this.repos.forEach(r => { indexed[r.repo] = r })
return indexed;
}
, repos : [
{ repo : 'elxr' }
]

+ 15
- 7
win_verse.js View File

@@ -1,5 +1,6 @@
const { any } = require('bbhverse');
const fs = require('fs')
var path = require('path');

var cli = require('./cliverse')
var nodeShellExec = cli.nodeShellExec;
@@ -25,12 +26,12 @@ var shell_verse = {
var __runasresult = null;
return taskToRun().then((r)=>{
// PB : TODO -- Every elevation should have its own messaging file. Async writes from multiple processes are a problem here...
elevatedRunIPCWriteMessage( runlogjson, { info : taskToRun.info, success: true } )
elevatedRunIPCWriteMessage( runlogjson, ', ' + JSON.stringify( { info : taskToRun.info, success: true }) )
if(!inBatch) fs.writeFileSync('run.done', 'success') // PB : TODO -- This should be done conditionally if we are running inproc.
return __runasresult = r;
})
.catch((e) => {
elevatedRunIPCWriteMessage( runlogjson, e )
elevatedRunIPCWriteMessage( runlogjson, ', ' + JSON.stringify(e ) )
if(!inBatch)fs.writeFileSync('run.done', 'failure')
console.error(e)
})
@@ -138,14 +139,21 @@ var shell_verse = {
}).then((exitcode) => {
console.log('Elevated')
__isElevated = true;
}).catch(() => {
shell_verse.acquireElevationState = ()=> Promise.resolve(__isElevated);
shell_verse.isElevated = () => { return Promise.resolve(__isElevated)}
return __isElevated
}).catch((e) => {
__isElevated = false;
console.log('Not Elevated');
}).finally(()=>{
shell_verse.acquireElevationState = ()=> Promise.resolve(__isElevated);
shell_verse.isElevated = () => { return Promise.resolve(__isElevated)}
return __isElevated;
console.log('Not Elevated');
return __isElevated
})
// .finally(()=>{
// shell_verse.acquireElevationState = ()=> Promise.resolve(__isElevated);
// shell_verse.isElevated = () => { return Promise.resolve(__isElevated)}
// // return __isElevated; // Value returned from finally is not supported by node.
// })
}
, getTaskCheckExists : cli.createTask('getTaskCheckExists', 'where')
@@ -175,7 +183,7 @@ var shell_verse = {
console.log('result : ' + JSON.stringify(r))
Object.keys(processedArgs).forEach((v) => { v != '_' ? namedArgs.push('--' + v + '=' + processedArgs[v]) : null; })
// PB : TODO -- Convert all the cli args back to string.
var args = [`${selectedinstance.root}/.elxr/run-${taskToRun.runtimestamp}/windowselevate.hta`].concat(processedArgs._)
var args = [ path.normalize(`${selectedinstance.root}/.elxr/run-${taskToRun.runtimestamp}/windowselevate.hta`) ].concat(processedArgs._)
namedArgs.length > 0 ? args = args.concat(namedArgs.join(' ')) : null;
args.push('--runas=self');
var elevatedruntimestamp = (new Date()).getTime()

Loading…
Cancel
Save