jarun2018 2 лет назад
Родитель
Сommit
dfc6c76ed8
1 измененных файлов: 412 добавлений и 416 удалений
  1. 412
    416
      i.win.js

+ 412
- 416
i.win.js Просмотреть файл

@@ -1032,454 +1032,453 @@ function __main( selectedinstance ){
}
}
var prerequisites = [
// {
// shellcmd: 'git',
// url: 'https://github.com/git-for-windows/git/releases/download/v2.33.0.windows.2/Git-2.33.0.2-64-bit.exe'
// , installer: 'Git-2.33.0.2-64-bit.exe'
// , installcmd: ['cmd', ['/c', 'start',
// '/WAIT', downloadsdir + '/' + 'Git-2.33.0.2-64-bit.exe'
// , '/VERYSILENT'
// // , '/MERGETASKS=!runcode' // This is required only for vscode...
// ]]
// , preinstallsteps: function() {
// var self = this;
// console.log('Git preinstall steps')
{
shellcmd: 'git',
url: 'https://github.com/git-for-windows/git/releases/download/v2.33.0.windows.2/Git-2.33.0.2-64-bit.exe'
, installer: 'Git-2.33.0.2-64-bit.exe'
, installcmd: ['cmd', ['/c', 'start',
'/WAIT', downloadsdir + '/' + 'Git-2.33.0.2-64-bit.exe'
, '/VERYSILENT'
// , '/MERGETASKS=!runcode' // This is required only for vscode...
]]
, preinstallsteps: function() {
var self = this;
console.log('Git preinstall steps')

// var steps = [];
// // steps.push(
// // function(){
// // // console.log('cli prompt steps')
// // var choices = { 0 : 'guest', 1 : 'chessdemo' }
// // return cli.prompt(choices, 'git user name', gitUser).then(function(choice){ gitUser = choice } )
// // }
// // )
var steps = [];
// steps.push(
// function(){
// // console.log('cli prompt steps')
// var choices = { 0 : 'guest', 1 : 'chessdemo' }
// return cli.prompt(choices, 'git user name', gitUser).then(function(choice){ gitUser = choice } )
// }
// )

// // steps.push(
// // function(){
// // var choices = { 0 : 'guest@bbh.org.in', 1 : 'chessdemo@bbh.org.in' }
// // return cli.prompt(choices, 'git user email', gitEmail).then(function(choice){ gitEmail = choice })
// // }
// // )
// steps.push(
// function(){
// if (!existsSync(downloadsdir + '/' + self.installer)) {
// return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', [self.url, downloadsdir + '/' + self.installer])
// }
// else {
// console.log(self.installer + ' Already exits Download skipped.')
// return Promise.resolve(true)
// }
// }
// )
// return any(steps)
// // return any([any(steps), any(prompts)])
// }
// , installsteps: function () {
// var self = this;
// console.log('Git Installsteps called')
// var ifns = [self.installcmd]
// 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
// })
// }
// , postinstallsteps: function(){
// steps.push(
// function(){
// var choices = { 0 : 'guest@bbh.org.in', 1 : 'chessdemo@bbh.org.in' }
// return cli.prompt(choices, 'git user email', gitEmail).then(function(choice){ gitEmail = choice })
// }
// )
steps.push(
function(){
if (!existsSync(downloadsdir + '/' + self.installer)) {
return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', [self.url, downloadsdir + '/' + self.installer])
}
else {
console.log(self.installer + ' Already exits Download skipped.')
return Promise.resolve(true)
}
}
)
return any(steps)
// return any([any(steps), any(prompts)])
}
, installsteps: function () {
var self = this;
console.log('Git Installsteps called')
var ifns = [self.installcmd]
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
})
}
, postinstallsteps: function(){

// // PB : TODO -- Detect failure or cancellation before attenpting postinstall steps...
// var steps = [];
// steps.push(
// function(){
// var choices = { 0 : 'guest', 1 : 'chessdemo' }
// return cli.prompt(choices, 'git user name', gitUser).then(function(choice){ gitUser = choice } )
// }
// )
// PB : TODO -- Detect failure or cancellation before attenpting postinstall steps...
var steps = [];
steps.push(
function(){
var choices = { 0 : 'guest', 1 : 'chessdemo' }
return cli.prompt(choices, 'git user name', gitUser).then(function(choice){ gitUser = choice } )
}
)

// steps.push(
// function(){
// var choices = { 0 : 'guest@bbh.org.in', 1 : 'chessdemo@bbh.org.in' }
// return cli.prompt(choices, 'git user email', gitEmail).then(function(choice){ gitEmail = choice })
// }
// )
steps.push(
function(){
var choices = { 0 : 'guest@bbh.org.in', 1 : 'chessdemo@bbh.org.in' }
return cli.prompt(choices, 'git user email', gitEmail).then(function(choice){ gitEmail = choice })
}
)

// return any(steps).then(function(){
// var steps = [
// ['git', ['config', '--global', '--add', 'user.name', gitUser]]
// , ['git', ['config', '--global', '--add', 'user.email', gitEmail]]
// ]
return any(steps).then(function(){
var steps = [
['git', ['config', '--global', '--add', 'user.name', gitUser]]
, ['git', ['config', '--global', '--add', 'user.email', gitEmail]]
]
// if(!steps.map) steps.map = map;
// return any(steps.map(callsheltask)).then(function(){
if(!steps.map) steps.map = map;
return any(steps.map(callsheltask)).then(function(){

// })
// });
// }
// , install: function () {
// var self = this;
// console.log('Git Install called')
})
});
}
, install: function () {
var self = this;
console.log('Git Install called')

// var createTasq = function(args, shellT, onEachError) {
// var tasq = shellT ? shellT(args) : ( function(){
// console.log('sdsfdsdf ' + args)
// return any([nodeShellExec.apply(null, args)])
// // .catch( onEachError || function(e){ console.error(e) } )
// })
// tasq.toString = function(){ return JSON.stringify(args)}
// return tasq;
// }
var createTasq = function(args, shellT, onEachError) {
var tasq = shellT ? shellT(args) : ( function(){
console.log('sdsfdsdf ' + args)
return any([nodeShellExec.apply(null, args)])
// .catch( onEachError || function(e){ console.error(e) } )
})
tasq.toString = function(){ return JSON.stringify(args)}
return tasq;
}

// var execserial = function(tasklist, task, shellT, onEachError){
// var exec = function(taskArgs){
// console.log('execcing ' + task)
// var thistask = task.concat();
// thistask[1] = thistask[1].concat()
// thistask[1].push.apply(thistask[1], taskArgs)
// return createTasq(thistask, shellT)
// }
var execserial = function(tasklist, task, shellT, onEachError){
var exec = function(taskArgs){
console.log('execcing ' + task)
var thistask = task.concat();
thistask[1] = thistask[1].concat()
thistask[1].push.apply(thistask[1], taskArgs)
return createTasq(thistask, shellT)
}
// tasklist.map = map
// console.log('execlist ' + tasklist.map(exec))
// return any(tasklist.map(exec))
// }
tasklist.map = map
console.log('execlist ' + tasklist.map(exec))
return any(tasklist.map(exec))
}
// function resetgitconfig(){
function resetgitconfig(){
// // https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
// // Git Credential storage...
// // git config --global credential.helper 'store --file ~/.gitcredentials'
// // git credential-store --file ~/.gitcredentials store
// // // notepad C:/Program Files/Git/etc/gitconfig
// // git config --global --unset credential
// // git config --edit --system
// // git config --global credential.helper "store --file ~/gitcredentials"
// // git credential fill
// // git credential-store --file ~/git.store store
// https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
// Git Credential storage...
// git config --global credential.helper 'store --file ~/.gitcredentials'
// git credential-store --file ~/.gitcredentials store
// // notepad C:/Program Files/Git/etc/gitconfig
// git config --global --unset credential
// git config --edit --system
// git config --global credential.helper "store --file ~/gitcredentials"
// git credential fill
// git credential-store --file ~/git.store store
// // Find system git config
// // git config --global --edit
// // git config --list --show-origin
// // git config --list --show-origin --show-scope
// Find system git config
// git config --global --edit
// git config --list --show-origin
// git config --list --show-origin --show-scope
// // https://stackoverflow.com/questions/35942754/how-can-i-save-username-and-password-in-git
// // Recipie
// // git config --global --unset credentials.helper
// // cd /path/to/my/repo
// // git config --unset credential.helper
// // git config credential.helper 'store --file ~/.git_repo_credentials'
// // git config credential.*.username my_user_name
// // git config credential.https://gitlab.com.username my_user_name
// https://stackoverflow.com/questions/35942754/how-can-i-save-username-and-password-in-git
// Recipie
// git config --global --unset credentials.helper
// cd /path/to/my/repo
// git config --unset credential.helper
// git config credential.helper 'store --file ~/.git_repo_credentials'
// git config credential.*.username my_user_name
// git config credential.https://gitlab.com.username my_user_name
// // git credential fill
// // git config --global credential.modalprompt false // doesnst work.
// // core askpass = ;;; https://stackoverflow.com/questions/37182847/how-do-i-disable-git-credential-manager-for-windows
// var options = {
// inherit: true, shell: true //, env: process.env
// , cwd: selectedinstance.root
// // , runas: processedArgs.runas
// }
// git credential fill
// git config --global credential.modalprompt false // doesnst work.
// core askpass = ;;; https://stackoverflow.com/questions/37182847/how-do-i-disable-git-credential-manager-for-windows
var options = {
inherit: true, shell: true //, env: process.env
, cwd: selectedinstance.root
// , runas: processedArgs.runas
}
// var task = ['git', ['config'], options]
var task = ['git', ['config'], options]
// var tasklist = [
// // ['--global', '--unset credentials.helper']
// // ['--unset', 'credentials.helper']
// // ,
// // ['credential.helper', `'store --file git_repo_credentials'`]
// ['--global', 'credential.helper', "'store --file ~/.git_repo_credentials'"]
// , ['--global', '--replace-all', 'user.name', 'pb']
// , ['--global', '--replace-all', 'user.email', 'pradeep@bbh.org.in']
var tasklist = [
// ['--global', '--unset credentials.helper']
// ['--unset', 'credentials.helper']
// ,
// ['credential.helper', `'store --file git_repo_credentials'`]
['--global', 'credential.helper', "'store --file ~/.git_repo_credentials'"]
, ['--global', '--replace-all', 'user.name', 'pb']
, ['--global', '--replace-all', 'user.email', 'pradeep@bbh.org.in']
// // , ['--list']
// // , ['credential', 'fill']
// ]
// var onEachError = function(e) { console.error( e.messages.join('\n') + e.result + '\n' + util.inspect(e) + '\n') }
// var shellT = function(args) {
// return getgitshelltask(args, onEachError)
// // .catch(e => console.error( e.messages.join('\n') + e.result + '\n' + util.inspect(e) + '\n' + tasq.toString()) )
// }
// execserial(tasklist, task, shellT, onEachError )
// }
// , ['--list']
// , ['credential', 'fill']
]
var onEachError = function(e) { console.error( e.messages.join('\n') + e.result + '\n' + util.inspect(e) + '\n') }
var shellT = function(args) {
return getgitshelltask(args, onEachError)
// .catch(e => console.error( e.messages.join('\n') + e.result + '\n' + util.inspect(e) + '\n' + tasq.toString()) )
}
execserial(tasklist, task, shellT, onEachError )
}

// return any([ /*self.preinstallsteps,*/
// function(){ return self.installsteps() }
// , function() { resetgitconfig() }
// , function(){ return self.postinstallsteps() }
// ])
// }
// , verifyAndInstall : function(){
// var self = this;
// return self.exists().then( function(exits) {
// if(exists) return self.getUser(null, function(){ return self.postinstallsteps() } )
// else return self.install();
// })
// }
// , exists : exists
// , getUser : function(repo, onNoResult){
return any([ /*self.preinstallsteps,*/
function(){ return self.installsteps() }
, function() { resetgitconfig() }
, function(){ return self.postinstallsteps() }
])
}
, verifyAndInstall : function(){
var self = this;
return self.exists().then( function(exits) {
if(exists) return self.getUser(null, function(){ return self.postinstallsteps() } )
else return self.install();
})
}
, exists : exists
, getUser : function(repo, onNoResult){
// onNoResult = onNoResult || function(){return false}
// var globalOrLocal = '--global';
// if(!repo) globalOrLocal = '--global';
// else globalOrLocal = '--local'
// var fns = [['git', ['config', globalOrLocal, '--get-all', 'user.name']]]
// if(!ifns.map) ifns.map = map;
// return any(fns.map(callsheltask)).then(function(result){
// // not yet configured.
// if(!result.success) return onNoResult()
// else {
// var users = result.messages[0].trim().split('\n');
// if(users.length === 0 ||
// users.length === 1 && users[0] === 'guest') {
onNoResult = onNoResult || function(){return false}
var globalOrLocal = '--global';
if(!repo) globalOrLocal = '--global';
else globalOrLocal = '--local'
var fns = [['git', ['config', globalOrLocal, '--get-all', 'user.name']]]
if(!ifns.map) ifns.map = map;
return any(fns.map(callsheltask)).then(function(result){
// not yet configured.
if(!result.success) return onNoResult()
else {
var users = result.messages[0].trim().split('\n');
if(users.length === 0 ||
users.length === 1 && users[0] === 'guest') {
// return onNoResult()
// }
// else return users[0]; // PB : TODO == We should probably prompt with all the users available for selection !
// }
// })
// ['catch'](function(e){
// console.log(e)
// return onNoResult()
// })
// }
// }
// ,
// {
// shellcmd: 'node',
// url: 'https://nodejs.org/dist/v14.17.6/node-v14.17.6-x64.msi'
// , installer: 'node-v14.17.3-x64.msi'
// , installcmd: ['MSIEXEC.exe', ['/i'
// , path.normalize(downloadsdir + '/' + 'node-v14.17.3-x64.msi')
// , 'ACCEPT=YES', '/passive']]
// , install : install
// , exists : exists
// , preinstallsteps: function() {
// var self = this;
// console.log('Node preinstall steps')
return onNoResult()
}
else return users[0]; // PB : TODO == We should probably prompt with all the users available for selection !
}
})
['catch'](function(e){
console.log(e)
return onNoResult()
})
}
}
,
{
shellcmd: 'node',
url: 'https://nodejs.org/dist/v14.17.6/node-v14.17.6-x64.msi'
, installer: 'node-v14.17.3-x64.msi'
, installcmd: ['MSIEXEC.exe', ['/i'
, path.normalize(downloadsdir + '/' + 'node-v14.17.3-x64.msi')
, 'ACCEPT=YES', '/passive']]
, install : install
, exists : exists
, preinstallsteps: function() {
var self = this;
console.log('Node preinstall steps')

// var steps = [];
// steps.push(
// function(){
// if (!existsSync(downloadsdir + '/' + self.installer)) {
// return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
// , { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
// }
// else {
// console.log(self.installer + ' Already exits Download skipped.')
// return Promise.resolve(true)
// }
// }
// )
var steps = [];
steps.push(
function(){
if (!existsSync(downloadsdir + '/' + self.installer)) {
return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
, { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
}
else {
console.log(self.installer + ' Already exits Download skipped.')
return Promise.resolve(true)
}
}
)
// return any(steps)
// // return any([any(steps), any(prompts)])
// }
// }
// , {
// shellcmd: 'python'
// , optional : true
// , url: 'https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi'
// , installer: 'python-2.7.18.amd64.msi'
// , installcmd: ['MSIEXEC.exe', ['/i'
// , path.normalize(downloadsdir + '/' + 'python-2.7.18.amd64.msi')
// , 'ACCEPT=YES', '/passive']]
// , preinstallsteps: function() {
// var self = this;
// console.log(self.shellcmd + ' preinstall steps')
return any(steps)
// return any([any(steps), any(prompts)])
}
}
, {
shellcmd: 'python'
, optional : true
, url: 'https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi'
, installer: 'python-2.7.18.amd64.msi'
, installcmd: ['MSIEXEC.exe', ['/i'
, path.normalize(downloadsdir + '/' + 'python-2.7.18.amd64.msi')
, 'ACCEPT=YES', '/passive']]
, preinstallsteps: function() {
var self = this;
console.log(self.shellcmd + ' preinstall steps')

// var steps = [];
// steps.push(
// function(){
// if (!existsSync(downloadsdir + '/' + self.installer)) {
// return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', [self.url, downloadsdir + '/' + self.installer]
// , { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
// }
// else {
// console.log(self.installer + ' Already exits Download skipped.')
// return Promise.resolve(true)
// }
// }
// )
var steps = [];
steps.push(
function(){
if (!existsSync(downloadsdir + '/' + self.installer)) {
return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', [self.url, downloadsdir + '/' + self.installer]
, { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
}
else {
console.log(self.installer + ' Already exits Download skipped.')
return Promise.resolve(true)
}
}
)
// return any(steps)
// // return any([any(steps), any(prompts)])
// }
// , install : install
// , postinstallsteps : function() { return sysAddPathVar('%USERPROFILE%\\AppData/Local\\Microsoft\\WindowsApps') }
// , exists : exists
// }
// , {
// shellcmd: 'code'
// , optional : true
// , url: 'https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user'
// , installer: 'VSCodeUserSetup-x64-1.65.2.exe'
// , installcmd: ['cmd /c', ['start /WAIT ' + downloadsdir + '/' + 'VSCodeUserSetup-x64-1.65.2.exe /VERYSILENT'
// // , '/MERGETASKS=!runcode' // This is required only for vscode...
// ]]
// , preinstallsteps: function() {
// var self = this;
// console.log(self.shellcmd + ' preinstall steps')
return any(steps)
// return any([any(steps), any(prompts)])
}
, install : install
, postinstallsteps : function() { return sysAddPathVar('%USERPROFILE%\\AppData/Local\\Microsoft\\WindowsApps') }
, exists : exists
}
, {
shellcmd: 'code'
, optional : true
, url: 'https://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user'
, installer: 'VSCodeUserSetup-x64-1.65.2.exe'
, installcmd: ['cmd /c', ['start /WAIT ' + downloadsdir + '/' + 'VSCodeUserSetup-x64-1.65.2.exe /VERYSILENT'
// , '/MERGETASKS=!runcode' // This is required only for vscode...
]]
, preinstallsteps: function() {
var self = this;
console.log(self.shellcmd + ' preinstall steps')

// var steps = [];
// steps.push(
// function(){
// if (!existsSync(downloadsdir + '/' + self.installer)) {
// console.log(self.url)
// return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
// , { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
// }
// else {
// console.log(self.installer + ' Already exits Download skipped.')
// return Promise.resolve(true)
// }
// }
// )
var steps = [];
steps.push(
function(){
if (!existsSync(downloadsdir + '/' + self.installer)) {
console.log(self.url)
return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
, { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
}
else {
console.log(self.installer + ' Already exits Download skipped.')
return Promise.resolve(true)
}
}
)
// return any(steps)
// // return any([any(steps), any(prompts)])
// }
// , install : install
// , postinstallsteps : function() { return sysAddPathVar('%USERPROFILE%\\AppData/Local\\Microsoft\\WindowsApps') }
// , exists : exists
// }
// , {
// shellcmd: 'sqlexpress',
// url: 'https://go.microsoft.com/fwlink/?linkid=866658'
// , installer: 'SQL2019-SSEI-Expr.exe'
// , installcmd: ['cmd', ['/c', 'start',
// '/WAIT', downloadsdir + '/' + 'SQL2019-SSEI-Expr.exe'
// , '/Quiet'
// //, 'SSMSInstallRoot=%systemdrive%\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\ManagementStudio'
// ]]
// , install : install
// , exists : exists
// , preinstallsteps: function() {
// var self = this;
// console.log('Node preinstall steps')
return any(steps)
// return any([any(steps), any(prompts)])
}
, install : install
, postinstallsteps : function() { return sysAddPathVar('%USERPROFILE%\\AppData/Local\\Microsoft\\WindowsApps') }
, exists : exists
}
, {
shellcmd: 'sqlexpress',
url: 'https://go.microsoft.com/fwlink/?linkid=866658'
, installer: 'SQL2019-SSEI-Expr.exe'
, installcmd: ['cmd', ['/c', 'start',
'/WAIT', downloadsdir + '/' + 'SQL2019-SSEI-Expr.exe'
, '/Quiet'
//, 'SSMSInstallRoot=%systemdrive%\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\ManagementStudio'
]]
, install : install
, exists : exists
, preinstallsteps: function() {
var self = this;
console.log('Node preinstall steps')

// var steps = [];
// steps.push(
// function(){
// if (!existsSync(downloadsdir + '/' + self.installer)) {
// return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
// , { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
// }
// else {
// console.log(self.installer + ' Already exits Download skipped.')
// return Promise.resolve(true)
// }
// }
// )
var steps = [];
steps.push(
function(){
if (!existsSync(downloadsdir + '/' + self.installer)) {
return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
, { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
}
else {
console.log(self.installer + ' Already exits Download skipped.')
return Promise.resolve(true)
}
}
)
// return any(steps)
// // return any([any(steps), any(prompts)])
// }
// }
// , {
// shellcmd: 'Ssms2019.exe',
// url: 'https://aka.ms/ssmsfullsetup'
// , installer: 'SSMS-Setup-ENU.exe'
// , installcmd: ['cmd', ['/c', 'start',
// '/WAIT', downloadsdir + '/' + 'SSMS-Setup-ENU.exe'
// , '/Quiet'
// //, 'SSMSInstallRoot=%systemdrive%\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\ManagementStudio'
// ]]
// , install : install
// , exists : exists
// , preinstallsteps: function() {
// var self = this;
// console.log('smss preinstall steps')
return any(steps)
// return any([any(steps), any(prompts)])
}
}
, {
shellcmd: 'Ssms2019.exe',
url: 'https://aka.ms/ssmsfullsetup'
, installer: 'SSMS-Setup-ENU.exe'
, installcmd: ['cmd', ['/c', 'start',
'/WAIT', downloadsdir + '/' + 'SSMS-Setup-ENU.exe'
, '/Quiet'
//, 'SSMSInstallRoot=%systemdrive%\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\ManagementStudio'
]]
, install : install
, exists : exists
, preinstallsteps: function() {
var self = this;
console.log('smss preinstall steps')

// var steps = [];
// steps.push(
// function(){
// if (!existsSync(downloadsdir + '/' + self.installer)) {
// console.log(self.url)
// return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
// , { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
// }
// else {
// console.log(self.installer + ' Already exits Download skipped.')
// return Promise.resolve(true)
// }
// }
// )
var steps = [];
steps.push(
function(){
if (!existsSync(downloadsdir + '/' + self.installer)) {
console.log(self.url)
return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
, { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
}
else {
console.log(self.installer + ' Already exits Download skipped.')
return Promise.resolve(true)
}
}
)
// return any(steps)
// // return any([any(steps), any(prompts)])
// }
// }
// , {
// shellcmd: 'Ssms.exe',
// url: 'https://go.microsoft.com/fwlink/?linkid=2043154&clcid=0x409'
// , installer: 'SSMS-Setup-ENU.exe'
// , installcmd: ['cmd', ['/c', 'start',
// '/WAIT', downloadsdir + '/' + 'SSMS-Setup-ENU.exe'
// , '/Quiet'
// //, 'SSMSInstallRoot=%systemdrive%\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\ManagementStudio'
// ]]
// , install : install
// , exists : exists
// , preinstallsteps: function() {
// var self = this;
// console.log('smss preinstall steps')
return any(steps)
// return any([any(steps), any(prompts)])
}
}
, {
shellcmd: 'Ssms.exe',
url: 'https://go.microsoft.com/fwlink/?linkid=2043154&clcid=0x409'
, installer: 'SSMS-Setup-ENU.exe'
, installcmd: ['cmd', ['/c', 'start',
'/WAIT', downloadsdir + '/' + 'SSMS-Setup-ENU.exe'
, '/Quiet'
//, 'SSMSInstallRoot=%systemdrive%\\Program Files (x86)\\Microsoft SQL Server\\140\\Tools\\Binn\\ManagementStudio'
]]
, install : install
, exists : exists
, preinstallsteps: function() {
var self = this;
console.log('smss preinstall steps')

// var steps = [];
// steps.push(
// function(){
// if (!existsSync(downloadsdir + '/' + self.installer)) {
// console.log(self.url)
// return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
// , { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
// }
// else {
// console.log(self.installer + ' Already exits Download skipped.')
// return Promise.resolve(true)
// }
// }
// )
var steps = [];
steps.push(
function(){
if (!existsSync(downloadsdir + '/' + self.installer)) {
console.log(self.url)
return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', ['"' + self.url + '"', downloadsdir + '/' + self.installer]
, { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
}
else {
console.log(self.installer + ' Already exits Download skipped.')
return Promise.resolve(true)
}
}
)
// return any(steps)
// // return any([any(steps), any(prompts)])
// }
// }
// , {
// shellcmd: 'mysql',
// 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')
// //, 'ACCEPT=YES', '/passive'
// ]]
// , install : install
// , exists : exists
// , preinstallsteps: function() {
// var self = this;
// console.log('mysql preinstall steps')
return any(steps)
// return any([any(steps), any(prompts)])
}
}
, {
shellcmd: 'mysql',
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')
//, 'ACCEPT=YES', '/passive'
]]
, install : install
, exists : exists
, preinstallsteps: function() {
var self = this;
console.log('mysql preinstall steps')

// var steps = [];
// steps.push(
// function(){
// if (!existsSync(downloadsdir + '/' + self.installer)) {
// console.log(self.url)
// return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', [self.url, downloadsdir + '/' + self.installer]
// , { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
// }
// else {
// console.log(self.installer + ' Already exits Download skipped.')
// return Promise.resolve(true)
// }
// }
// )
var steps = [];
steps.push(
function(){
if (!existsSync(downloadsdir + '/' + self.installer)) {
console.log(self.url)
return nodeShellExec(selectedinstance.root + '/.elxr/run-' + runtimestamp + '/download.bat', [self.url, downloadsdir + '/' + self.installer]
, { waitmsg : 'downloading '+ self.shellcmd +' please wait' })
}
else {
console.log(self.installer + ' Already exits Download skipped.')
return Promise.resolve(true)
}
}
)
// return any(steps)
// // return any([any(steps), any(prompts)])
// }
// }
// ,
{
return any(steps)
// return any([any(steps), any(prompts)])
}
}
, {
shellcmd: 'elxr'
, forceinstall : true
, installcmd: [ isWin() ? 'npm.cmd' : 'npm' , ['link'], { cwd : selectedinstance.root + '\\elxr' /* cwd should be the cloned dir*/}]
@@ -1504,16 +1503,13 @@ function __main( selectedinstance ){
function(){
// console.log('cli prompt steps')
var choices = { 0 : 'http://git.bbh', 1 : 'https://git.bbh.org.in' }
return cli.prompt(choices, 'git repository : ', chessRepo).then(function(choice){
console.log( 'choice : ' + choice)
chessRepo = choice } )
return cli.prompt(choices, 'git repository : ', chessRepo).then(function(choice){ chessRepo = choice } )
}
)
return any(steps).then(function(){
return any(steps).then(function(chessRepo){
var ifns = [
['git', ['clone', chessRepo + '/chess/elxr'] ]
]
console.log( 'chessRepo : ' + chessRepo)
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.

Загрузка…
Отмена
Сохранить