@ -13,11 +13,21 @@ const _ = require('lodash')
let installDir = path . resolve ( _ _dirname , '../..' )
ora . text = 'Looking for running instances...'
pm2 . connectAsync ( ) . then ( ( ) => {
return pm2 . describeAsync ( 'wiki' ) . then ( ( ) => {
ora . text = 'Stopping and deleting from pm2...'
return pm2 . deleteAsync ( 'wiki' )
} ) . catch ( err => { // eslint-disable-line handle-callback-err
return true
} )
} ) . then ( ( ) => {
/ * *
* Fetch version from npm package
* /
fs . readJsonAsync ( 'package.json' ) . then ( ( packageObj ) => {
let remoteURL = _ . replace ( 'https://github.com/Requarks/wiki/releases/download/v{0}/wiki-js.tar.gz' , '{0}' , packageObj . version )
return fs . readJsonAsync ( 'package.json' ) . then ( ( packageObj ) => {
let versionGet = _ . chain ( packageObj . version ) . split ( '.' ) . take ( 4 ) . join ( '.' )
let remoteURL = _ . replace ( 'https://github.com/Requarks/wiki/releases/download/v{0}/wiki-js.tar.gz' , '{0}' , versionGet )
return new Promise ( ( resolve , reject ) => {
/ * *
@ -42,6 +52,7 @@ fs.readJsonAsync('package.json').then((packageObj) => {
} )
} )
} )
} )
} ) . then ( ( ) => {
return new Promise ( ( resolve , reject ) => {
ora . text = 'Installing Wiki.js npm dependencies...'
@ -62,17 +73,19 @@ fs.readJsonAsync('package.json').then((packageObj) => {
/ * *
* Upgrade mode
* /
ora . text = 'Upgrade succeeded. Reloading Wiki.js...'
return pm2 . connectAsync ( ) . then ( ( ) => {
return pm2 . restartAsync ( 'wiki' ) . catch ( err => { // eslint-disable-line handle-callback-err
return new Error ( 'Unable to restart Wiki.js via pm2... Do a manual restart!' )
} ) . then ( ( ) => {
ora . succeed ( 'Wiki.js has restarted. Upgrade completed.' )
return new Promise ( ( resolve , reject ) => {
ora . text = 'Upgrade succeeded. Starting Wiki.js...'
let npmInstallProc = exec ( 'wiki start' , {
cwd : installDir
} )
npmInstallProc . stdout . pipe ( process . stdout )
npmInstallProc . on ( 'error' , err => {
reject ( err )
} )
. on ( 'exit' , ( ) => {
ora . succeed ( 'Wiki.js has started. Upgrade completed.' )
resolve ( true )
} )
} ) . catch ( err => {
ora . fail ( err )
} ) . finally ( ( ) => {
pm2 . disconnect ( )
} )
} ) . catch ( err => {
/ * *
@ -89,4 +102,6 @@ fs.readJsonAsync('package.json').then((packageObj) => {
} )
} ) . catch ( err => {
ora . fail ( err )
} ) . finally ( ( ) => {
pm2 . disconnect ( )
} )