Browse Source

Local tarball install + end message delay

pull/73/head
NGPixel 7 years ago
parent
commit
f6e8e91f7e
1 changed files with 45 additions and 2 deletions
  1. 47
      npm/install.js

47
npm/install.js

@ -27,6 +27,9 @@ var ora = require('ora')({ text: 'Initializing...', spinner: 'dots12' }).start()
ora.text = 'Looking for running instances...' ora.text = 'Looking for running instances...'
pm2.connectAsync().then(() => { pm2.connectAsync().then(() => {
/**
* Stop and delete existing instances
*/
return pm2.describeAsync('wiki').then(() => { return pm2.describeAsync('wiki').then(() => {
ora.text = 'Stopping and deleting process from pm2...' ora.text = 'Stopping and deleting process from pm2...'
return pm2.deleteAsync('wiki') return pm2.deleteAsync('wiki')
@ -34,11 +37,46 @@ pm2.connectAsync().then(() => {
return true return true
}) })
}).then(() => { }).then(() => {
/**
* Check for sufficient memory
*/
if (os.totalmem() < 1024 * 1024 * 768) { if (os.totalmem() < 1024 * 1024 * 768) {
throw new Error('Not enough memory to install dependencies. Minimum is 768 MB.') throw new Error('Not enough memory to install dependencies. Minimum is 768 MB.')
} }
return true return true
}).then(() => { }).then(() => {
/**
* Install via local tarball if present
*/
let skipHttp = true
let tbPath = path.join(installDir, 'wiki-js.tar.gz')
return fs.accessAsync(tbPath)
.catch(err => { // eslint-disable-line handle-callback-err
skipHttp = false
}).then(() => {
if (skipHttp) {
ora.text = 'Local tarball found. Extracting...'
return new Promise((resolve, reject) => {
fs.createReadStream(tbPath).pipe(zlib.createGunzip())
.pipe(tar.Extract({ path: installDir }))
.on('error', err => reject(err))
.on('end', () => {
ora.text = 'Tarball extracted successfully.'
resolve(true)
})
})
} else {
return false
}
})
}).then((skipHttp) => {
/**
* Install via remote tarball
*/
if (skipHttp) { return true }
/** /**
* Fetch version from npm package * Fetch version from npm package
*/ */
@ -140,11 +178,16 @@ pm2.connectAsync().then(() => {
cwd: installDir cwd: installDir
}) })
default: default:
console.info(colors.bold.cyan('> You can run the configuration wizard using command:') + colors.bold.white(' node wiki configure') + colors.bold.cyan('. Then start Wiki.js using command: ') + colors.bold.white('node wiki start'))
return process.exit(0)
console.info(colors.bold.cyan('\n> You can run the configuration wizard using command:') + colors.bold.white(' node wiki configure') + colors.bold.cyan('.\n> Then start Wiki.js using command: ') + colors.bold.white('node wiki start'))
return Promise.delay(7000).then(() => {
process.exit(0)
})
} }
}).then(() => { }).then(() => {
ora.succeed(colors.bold.green('Wiki.js has been configured successfully. It is now starting up and should be accessible very soon!')) ora.succeed(colors.bold.green('Wiki.js has been configured successfully. It is now starting up and should be accessible very soon!'))
return Promise.delay(3000).then(() => {
console.info('npm is finishing... please wait...')
})
}) })
} else { } else {
console.info(colors.cyan('[WARNING] Non-interactive terminal detected. You must manually start the configuration wizard using the command: node wiki configure')) console.info(colors.cyan('[WARNING] Non-interactive terminal detected. You must manually start the configuration wizard using the command: node wiki configure'))

Loading…
Cancel
Save