env-cmd/lib/index.js
Todd Bluhm 0738042dbb Initial conversion of lib over to typescript
- All env-cmd-examples repo cases passing
- Added support for default .env-cmdrc.json file
- Added flag and help text lib
- Split up project into more reasonable files/chunks of code
- Updated copyright year to 2019
2019-01-31 16:12:55 -05:00

33 lines
1.1 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var spawn = require("cross-spawn");
var signal_termination_1 = require("./signal-termination");
var parse_args_1 = require("./parse-args");
/**
* The main process for reading, parsing, applying and then running the process with env vars
*/
function EnvCmd(args) {
// First Parse the args from the command line
var parsedArgs = parse_args_1.parseArgs(args);
var env;
// Override the merge order if --no-override flag set
if (parsedArgs.options.noOverride) {
env = Object.assign({}, parsedArgs.envValues, process.env);
}
else {
// Add in the system environment variables to our environment list
env = Object.assign({}, process.env, parsedArgs.envValues);
}
// Execute the command with the given environment variables
var proc = spawn(parsedArgs.command, parsedArgs.commandArgs, {
stdio: 'inherit',
env: env
});
// Handle any termination signals for parent and child proceses
signal_termination_1.handleTermSignals(proc);
return env;
}
module.exports = {
EnvCmd: EnvCmd
};