dce-dev-wizard
Version:
Wizard for managing development apps at Harvard DCE.
57 lines • 2.28 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var fs_1 = __importDefault(require("fs"));
var path_1 = __importDefault(require("path"));
// Import shared helpers
var print_1 = __importDefault(require("./print"));
// Get project directory
var currDir = (process.env.PWD || process.env.CWD);
/* eslint-disable no-console */
// Check if the current directory is an NPM project
var configFilename = path_1.default.join(currDir, 'dceConfig.json');
if (!fs_1.default.existsSync(configFilename)) {
// Initialize npm project
print_1.default.title('DCE Configuration Not Found');
console.log('');
console.log('Create dceConfig.json and populate it with deployments:');
console.log('{');
console.log(' "deployments": [');
console.log(' {');
console.log(' "name": "Stage",');
console.log(' "app": "mytool-stage",');
console.log(' "profile": "stage"');
console.log(' },');
console.log(' {');
console.log(' "name": "Prod",');
console.log(' "service": "mytool",');
console.log(' "profile": "prod"');
console.log(' }');
console.log(' ]');
console.log('}');
console.log('');
console.log('Where "name" is a human-readable name, "app" is the name of the deployment service, and "profile" is the name of the aws profile you use to access it.');
console.log('');
process.exit(0);
}
// Get the name of the current project
var config = JSON.parse(fs_1.default.readFileSync(configFilename, 'utf-8'));
var deployments = config.deployments;
if (!deployments || deployments.length === 0) {
console.log('Oops! Your /config/dceConfig.json is not fully configured. Add a "deployments" array.');
process.exit(0);
}
for (var i = 0; i < deployments.length; i++) {
if (!deployments[i].name || !deployments[i].app || !deployments[i].profile) {
console.log('Oops! Each deployment must have a "name", "app", and "profile"');
process.exit(0);
}
}
/**
* Configuration file, parsed as a JSON object
* @author Gabe Abrams
*/
exports.default = config;
//# sourceMappingURL=config.js.map