UNPKG

newkit-cli

Version:

Newkit cli tools.

65 lines (63 loc) 2.53 kB
'use strict'; let fs = require('fs'); let path = require('path'); let child_process = require('child_process'); let del = require('del'); let util = require('./util'); let config = require('./../config.json'); module.exports = (version, force) => { let apiAddress = `${config.apiHost}/newkit-autoupdate/v1/` + (version ? `versions/${version}` : 'current-version'); let cwd = process.cwd(); let localVersion = util.getLocalVersion(cwd); let root = (folderPath) => path.join(cwd, folderPath); if (localVersion) { util.info(`Local version: ${localVersion}`); } else { util.error('Can\'t get local version. Please use nc init to init project.'); if (!force) { return; } } util.getJson(apiAddress) .then((data) => { if (!data) { return util.error('Invalid version, please check input and try again.'); } if (data.versionNo === localVersion && !force) { return util.info('Local version are equal to remote version, Stoped.'); } util.info(`Starting update..., will update to ${data.versionNo}`); util.downloadFile(data.filename) .then((downloadFolder) => { util.info('Downloading zip package succeed. Unzip...'); util.unzip(downloadFolder) .then((folderPath) => { util.info('Unzip succeed, Clean folder...'); del.sync([ root('./assets/**'), root('./src/themes/**'), root('./src/*.*'), root('./src/modules/app-test/**'), root('./src/modules/nk-common/**'), root('./src/modules/nk-core/**'), root('./src/modules/nk-shell/**'), root('./assets.json') ]); util.info('Clean succeed, Coping...'); util.copyTo(folderPath, cwd) .then(() => { util.info(`Init successfully. Current vesion is ${data.versionNo}`); util.info(`Try to install dependencies...`); child_process.exec('npm install', (err, stdout, stderr) => { if (err) { console.log(err); } else { console.log(stdout); console.log(stderr); } }); }).catch(util.error); }).catch(util.error); }).catch(util.error); }).catch(util.error); };