mirror of
https://github.com/wassname/talk.git
synced 2026-06-28 21:47:49 +08:00
f488b0e02d
- Adjusted docs - Fixed issues with process terminating wrong
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
const pkg = require('../package.json');
|
|
const dotenv = require('dotenv');
|
|
const fs = require('fs');
|
|
const program = require('commander');
|
|
|
|
// Perform rewrites to the runtime environment variables based on the contents
|
|
// of the process.env.REWRITE_ENV if it exists. This is done here as it is the
|
|
// entrypoint for the entire application.
|
|
require('env-rewrite').rewrite();
|
|
|
|
//==============================================================================
|
|
// 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');
|