finished up executable rewrite, and prettified reset script output

v1.18.x
Julian Lam 10 years ago
parent e6061810f9
commit 4a0bc1fb03

@ -29,6 +29,7 @@ var fs = require('fs'),
async = require('async'), async = require('async'),
semver = require('semver'), semver = require('semver'),
winston = require('winston'), winston = require('winston'),
colors = require('colors'),
path = require('path'), path = require('path'),
pkg = require('./package.json'), pkg = require('./package.json'),
utils = require('./public/src/utils.js'); utils = require('./public/src/utils.js');
@ -274,17 +275,19 @@ function reset() {
process.exit(); process.exit();
} }
if (nconf.get('theme')) { if (nconf.get('t')) {
resetThemes(); resetThemes();
} else if (nconf.get('plugin')) { } else if (nconf.get('p')) {
resetPlugin(nconf.get('plugin')); if (nconf.get('p') === true) {
} else if (nconf.get('plugins')) { resetPlugins();
resetPlugins(); } else {
} else if (nconf.get('widgets')) { resetPlugin(nconf.get('p'));
}
} else if (nconf.get('w')) {
resetWidgets(); resetWidgets();
} else if (nconf.get('settings')) { } else if (nconf.get('s')) {
resetSettings(); resetSettings();
} else if (nconf.get('all')) { } else if (nconf.get('a')) {
require('async').series([resetWidgets, resetThemes, resetPlugins, resetSettings], function(err) { require('async').series([resetWidgets, resetThemes, resetPlugins, resetSettings], function(err) {
if (!err) { if (!err) {
winston.info('[reset] Reset complete.'); winston.info('[reset] Reset complete.');
@ -294,10 +297,17 @@ function reset() {
process.exit(); process.exit();
}); });
} else { } else {
winston.warn('[reset] Nothing reset.'); process.stdout.write('\nNodeBB Reset\n'.bold);
winston.info('Use ./nodebb reset {theme|plugins|widgets|settings|all}'); process.stdout.write('No arguments passed in, so nothing was reset.\n\n'.yellow);
winston.info(' or'); process.stdout.write('Use ./nodebb reset ' + '{-t|-p|-w|-s|-a}\n'.red);
winston.info('Use ./nodebb reset plugin="nodebb-plugin-pluginName"'); process.stdout.write(' -t\tthemes\n');
process.stdout.write(' -p\tplugins\n');
process.stdout.write(' -w\twidgets\n');
process.stdout.write(' -s\tsettings\n');
process.stdout.write(' -a\tall of the above\n');
process.stdout.write('\nPlugin reset flag (-p) can take a single argument\n');
process.stdout.write(' e.g. ./nodebb reset -p nodebb-plugin-mentions\n');
process.exit(); process.exit();
} }
}); });

@ -3,7 +3,10 @@
var colors = require('colors'), var colors = require('colors'),
cproc = require('child_process'), cproc = require('child_process'),
argv = require('minimist')(process.argv.slice(2)), argv = require('minimist')(process.argv.slice(2)),
fs = require('fs'); fs = require('fs'),
async = require('async'),
touch = require('touch'),
npm = require('npm');
var getRunningPid = function(callback) { var getRunningPid = function(callback) {
fs.readFile(__dirname + '/pidfile', { fs.readFile(__dirname + '/pidfile', {
@ -88,6 +91,65 @@ switch(process.argv[2]) {
}); });
break; break;
case 'log':
process.stdout.write('\nType '.red + 'Ctrl-C '.bold + 'to exit\n\n'.red);
cproc.spawn('tail', ['-F', './logs/output.log'], {
cwd: __dirname,
stdio: 'inherit'
});
break;
case 'setup':
cproc.fork('app.js', ['--setup'], {
cwd: __dirname,
silent: false
});
break;
case 'reset':
var args = process.argv.slice(0);
args.unshift('--reset');
cproc.fork('app.js', args, {
cwd: __dirname,
silent: false
});
break;
case 'upgrade':
async.series([
function(next) {
process.stdout.write('1. '.bold + 'Bringing base dependencies up to date\n'.yellow);
npm.load({
loglevel: 'silent'
}, function() {
npm.commands.install(next);
});
},
function(next) {
process.stdout.write('2. '.bold + 'Updating NodeBB data store schema\n'.yellow);
var upgradeProc = cproc.fork('app.js', ['--upgrade'], {
cwd: __dirname,
silent: false
});
upgradeProc.on('close', next)
},
function(next) {
process.stdout.write('3. '.bold + 'Storing upgrade date in "package.json"\n'.yellow);
touch(__dirname + '/package.json', {}, next);
}
], function(err) {
if (err) {
process.stdout.write('\nError'.red + ': ' + err.message + '\n');
} else {
var message = 'NodeBB Upgrade Complete!',
spaces = new Array(Math.floor(process.stdout.columns / 2) - (message.length / 2) + 1).join(' ');
process.stdout.write('\n' + spaces + message.green.bold + '\n\n');
}
});
break;
default: default:
process.stdout.write('\nWelcome to NodeBB\n\n'.bold); process.stdout.write('\nWelcome to NodeBB\n\n'.bold);
process.stdout.write('Usage: ./nodebb {start|stop|reload|restart|log|setup|reset|upgrade|dev}\n\n'); process.stdout.write('Usage: ./nodebb {start|stop|reload|restart|log|setup|reset|upgrade|dev}\n\n');
@ -104,27 +166,3 @@ switch(process.argv[2]) {
process.stdout.write('\n'); process.stdout.write('\n');
break; break;
} }
/*
log)
clear;
tail -F ./logs/output.log;
;;
upgrade)
npm install
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm install
# ls -d node_modules/nodebb* | xargs -n1 basename | xargs npm update
npm i nodebb-theme-vanilla nodebb-theme-lavender nodebb-widget-essentials
"$node" app --upgrade
touch package.json
;;
setup)
"$node" app --setup "$@"
;;
reset)
"$node" app --reset --$2
;;
*/

@ -67,6 +67,7 @@
"socketio-wildcard": "~0.1.1", "socketio-wildcard": "~0.1.1",
"string": "^3.0.0", "string": "^3.0.0",
"templates.js": "^0.2.3", "templates.js": "^0.2.3",
"touch": "0.0.3",
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git", "uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
"underscore": "~1.8.3", "underscore": "~1.8.3",
"validator": "^3.30.0", "validator": "^3.30.0",

Loading…
Cancel
Save