updates to cli

- removed -c,--config flag in favor of env only or .env files
- loads .env always if found
- scripts re-written to call cli-serve directly
This commit is contained in:
Wyatt Johnson
2017-12-21 12:03:34 -07:00
parent 7ae0df2cbc
commit 4fb9910221
15 changed files with 17 additions and 102 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
* Module dependencies.
*/
const program = require('./commander');
const program = require('commander');
const {head, map} = require('lodash');
const Matcher = require('did-you-mean');
+1 -1
View File
@@ -4,7 +4,7 @@
* Module dependencies.
*/
const program = require('./commander');
const program = require('commander');
const parseDuration = require('ms');
const Table = require('cli-table');
const AssetModel = require('../models/asset');
+1 -1
View File
@@ -4,7 +4,7 @@
* Module dependencies.
*/
const program = require('./commander');
const program = require('commander');
const scraper = require('../services/scraper');
const mailer = require('../services/mailer');
const util = require('./util');
+1 -1
View File
@@ -4,7 +4,7 @@
* Module dependencies.
*/
const program = require('./commander');
const program = require('commander');
const util = require('./util');
const inquirer = require('inquirer');
const mongoose = require('../services/mongoose');
+1 -1
View File
@@ -7,7 +7,7 @@
// Interface heavily inspired by the yarn package manager:
// https://yarnpkg.com/
const program = require('./commander');
const program = require('commander');
const inquirer = require('inquirer');
// Make things colorful!
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env node
const program = require('./commander');
const program = require('commander');
const util = require('./util');
const serve = require('../serve');
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env node
const program = require('./commander');
const program = require('commander');
const inquirer = require('inquirer');
const mongoose = require('../services/mongoose');
const SettingsService = require('../services/settings');
+1 -1
View File
@@ -4,7 +4,7 @@
* Module dependencies.
*/
const program = require('./commander');
const program = require('commander');
const inquirer = require('inquirer');
const mongoose = require('../services/mongoose');
const SettingModel = require('../models/setting');
+1 -1
View File
@@ -4,7 +4,7 @@
* Module dependencies.
*/
const program = require('./commander');
const program = require('commander');
const mongoose = require('../services/mongoose');
const TokensService = require('../services/tokens');
const util = require('./util');
+1 -1
View File
@@ -4,7 +4,7 @@
* Module dependencies.
*/
const program = require('./commander');
const program = require('commander');
const inquirer = require('inquirer');
const UsersService = require('../services/users');
const UserModel = require('../models/user');
+1 -1
View File
@@ -4,7 +4,7 @@
* Module dependencies.
*/
const program = require('./commander');
const program = require('commander');
const mongoose = require('../services/mongoose');
const util = require('./util');
const databaseVerifications = require('./verifications/database');
-51
View File
@@ -1,51 +0,0 @@
const pkg = require('../package.json');
const dotenv = require('dotenv');
const fs = require('fs');
const program = require('commander');
//==============================================================================
// Setting up the program command line arguments.
//==============================================================================
const parseArgs = require('minimist')(process.argv.slice(2), {
alias: {
'c': 'config'
},
string: [
'config',
'pid'
],
default: {
'config': null,
'pid': null
}
});
/**
* If the config flag is present, then we have to load the configuration from
* the file specified. We will then load those values into the environment.
*/
if (parseArgs.config) {
let envConfig = dotenv.parse(fs.readFileSync(parseArgs.config, {encoding: 'utf8'}));
Object.keys(envConfig).forEach((k) => {
process.env[k] = envConfig[k];
});
}
/**
* If the pid flag is present, then we have to create a pid file at the location
* specified.
*/
if (parseArgs.pid) {
const util = require('./util');
console.log('Wrote PID');
util.pid(parseArgs.pid);
}
module.exports = program
.version(pkg.version)
.option('-c, --config [path]', 'Specify the configuration file to load')
.option('--pid [path]', 'Specify a path to output the current PID to');
-38
View File
@@ -1,5 +1,4 @@
const debug = require('debug')('talk:util');
const fs = require('fs');
const util = module.exports = {};
@@ -49,43 +48,6 @@ util.onshutdown = (jobs) => {
util.toshutdown = util.toshutdown.concat(jobs);
};
/**
* Register a PID file to be maintained for the lifespan of the process.
* @param {String} path path to the PID file to create
*/
util.pid = (path) => {
if (!/\//.test(path)) {
if (!/\.pid/.test(path)) {
path += '.pid';
}
path = `/tmp/${path}`;
}
const pid = `${process.pid.toString()}\n`;
fs.writeFile(path, pid, (err) => {
if (err) {
console.error(`Can't write PID file: ${err}`);
throw err;
}
// Add the cleanup for the fs onto the shutdown.
util.onshutdown([
() => new Promise((resolve, reject) => {
// Remove the pid file.
fs.unlink(path, (err) => {
if (err) {
return reject(err);
}
return resolve();
});
})
]);
});
};
// Attach to the SIGTERM + SIGINT handles to ensure a clean shutdown in the
// event that we have an external event. SIGUSR2 is called when the app is asked
// to be 'killed', same procedure here.
+4
View File
@@ -7,6 +7,10 @@
// entrypoint for the entire applications configuration.
require('env-rewrite').rewrite();
// Apply all the configuration provided in the .env file if it isn't already
// in the environment.
require('dotenv').config();
const uniq = require('lodash/uniq');
const ms = require('ms');
const debug = require('debug')('talk:config');
+2 -2
View File
@@ -11,8 +11,8 @@
"watch": "npm-run-all clean generate-introspection --parallel watch:*",
"watch:client": "NODE_ENV=development webpack --progress --watch",
"watch:server": "nodemon --config .nodemon.json",
"start:development": "NODE_ENV=development ./bin/cli -c .env serve -j -w",
"start": "NODE_ENV=production ./bin/cli serve -j -w",
"start:development": "NODE_ENV=development ./bin/cli-serve -j -w",
"start": "NODE_ENV=production ./bin/cli-serve -j -w",
"prebuild": "npm-run-all clean generate-introspection",
"build": "NODE_ENV=production webpack -p --bail",
"lint:yaml": "yamllint locales/*.yml",