UNPKG

projen

Version:

CDK for software projects

79 lines 9.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = require("path"); const yargs = require("yargs"); const new_1 = require("./cmds/new"); const synth_1 = require("./synth"); const tasks_1 = require("./tasks"); const common_1 = require("../common"); const logging = require("../logging"); const task_runtime_1 = require("../task-runtime"); const util_1 = require("../util"); async function main() { const ya = yargs; ya.command(new_1.default); const pathToProjenDir = (0, util_1.findUp)(common_1.PROJEN_DIR, process.cwd()); const runtime = new task_runtime_1.TaskRuntime(pathToProjenDir ?? "."); (0, tasks_1.discoverTaskCommands)(runtime, ya); ya.recommendCommands(); ya.strictCommands(); ya.showHelpOnFail(false); ya.wrap(yargs.terminalWidth()); ya.option("post", { type: "boolean", default: true, desc: "Run post-synthesis steps such as installing dependencies. Use --no-post to skip", }); ya.option("watch", { type: "boolean", default: false, desc: "Keep running and resynthesize when projenrc changes", alias: "w", }); ya.options("debug", { type: "boolean", default: false, desc: "Debug logs" }); ya.options("rc", { deprecated: true, desc: "path to .projenrc.js file", // must be `defaultDescription` and not an actual `default` value, // since a default would make the CLI think --rc was passed // and later skip a perfectly fine modern default task. // The actual default value is set again later on. defaultDescription: (0, path_1.resolve)(common_1.DEFAULT_PROJEN_RC_JS_FILENAME), type: "string", }); ya.completion(); ya.help(); // do not use the default yargs '--version' implementation since it is // global by default (it appears on all subcommands) ya.version(false); ya.option("version", { type: "boolean", description: "Show version number", global: false, }); const args = await ya.argv; if (args.debug) { process.env.DEBUG = "true"; } const nodeVersion = (0, util_1.getNodeMajorVersion)(); if (nodeVersion && nodeVersion < 16) { logging.warn(`WARNING: You are using Node v${nodeVersion}, which reaches end of life on April 30, 2023. Support for EOL Node releases may be dropped by projen in the future. Please consider upgrading to Node >= 16 as soon as possible.`); } // no command means synthesize if (args._.length === 0) { if (args.version) { console.log(common_1.PROJEN_VERSION); process.exit(0); } await (0, synth_1.synth)(runtime, { post: args.post, watch: args.watch, rcfile: args.rc, }); } } main().catch((e) => { console.error(e.stack); process.exit(1); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLCtCQUErQjtBQUMvQixvQ0FBb0M7QUFDcEMsbUNBQWdDO0FBQ2hDLG1DQUErQztBQUMvQyxzQ0FJbUI7QUFDbkIsc0NBQXNDO0FBQ3RDLGtEQUE4QztBQUM5QyxrQ0FBc0Q7QUFFdEQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBVSxDQUFDLENBQUM7SUFFdkIsTUFBTSxlQUFlLEdBQUcsSUFBQSxhQUFNLEVBQUMsbUJBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFXLENBQUMsZUFBZSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELElBQUEsNEJBQW9CLEVBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWxDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3ZCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQixFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDL0IsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDaEIsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsSUFBSTtRQUNiLElBQUksRUFBRSxpRkFBaUY7S0FDeEYsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDakIsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxxREFBcUQ7UUFDM0QsS0FBSyxFQUFFLEdBQUc7S0FDWCxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM3RSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtRQUNmLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLElBQUksRUFBRSwyQkFBMkI7UUFDakMsa0VBQWtFO1FBQ2xFLDJEQUEyRDtRQUMzRCx1REFBdUQ7UUFDdkQsa0RBQWtEO1FBQ2xELGtCQUFrQixFQUFFLElBQUEsY0FBTyxFQUFDLHNDQUE2QixDQUFDO1FBQzFELElBQUksRUFBRSxRQUFRO0tBQ2YsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2hCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVWLHNFQUFzRTtJQUN0RSxvREFBb0Q7SUFDcEQsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQixFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNuQixJQUFJLEVBQUUsU0FBUztRQUNmLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsTUFBTSxFQUFFLEtBQUs7S0FDZCxDQUFDLENBQUM7SUFFSCxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFFM0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU0sV0FBVyxHQUFHLElBQUEsMEJBQW1CLEdBQUUsQ0FBQztJQUMxQyxJQUFJLFdBQVcsSUFBSSxXQUFXLEdBQUcsRUFBRSxFQUFFLENBQUM7UUFDcEMsT0FBTyxDQUFDLElBQUksQ0FDVixnQ0FBZ0MsV0FBVyxtTEFBbUwsQ0FDL04sQ0FBQztJQUNKLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUFjLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLElBQUEsYUFBSyxFQUFDLE9BQU8sRUFBRTtZQUNuQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQWU7WUFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFnQjtZQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQVk7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVzb2x2ZSB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tIFwieWFyZ3NcIjtcbmltcG9ydCBuZXdDb21tYW5kIGZyb20gXCIuL2NtZHMvbmV3XCI7XG5pbXBvcnQgeyBzeW50aCB9IGZyb20gXCIuL3N5bnRoXCI7XG5pbXBvcnQgeyBkaXNjb3ZlclRhc2tDb21tYW5kcyB9IGZyb20gXCIuL3Rhc2tzXCI7XG5pbXBvcnQge1xuICBQUk9KRU5fRElSLFxuICBERUZBVUxUX1BST0pFTl9SQ19KU19GSUxFTkFNRSxcbiAgUFJPSkVOX1ZFUlNJT04sXG59IGZyb20gXCIuLi9jb21tb25cIjtcbmltcG9ydCAqIGFzIGxvZ2dpbmcgZnJvbSBcIi4uL2xvZ2dpbmdcIjtcbmltcG9ydCB7IFRhc2tSdW50aW1lIH0gZnJvbSBcIi4uL3Rhc2stcnVudGltZVwiO1xuaW1wb3J0IHsgZmluZFVwLCBnZXROb2RlTWFqb3JWZXJzaW9uIH0gZnJvbSBcIi4uL3V0aWxcIjtcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgeWEgPSB5YXJncztcbiAgeWEuY29tbWFuZChuZXdDb21tYW5kKTtcblxuICBjb25zdCBwYXRoVG9Qcm9qZW5EaXIgPSBmaW5kVXAoUFJPSkVOX0RJUiwgcHJvY2Vzcy5jd2QoKSk7XG4gIGNvbnN0IHJ1bnRpbWUgPSBuZXcgVGFza1J1bnRpbWUocGF0aFRvUHJvamVuRGlyID8/IFwiLlwiKTtcbiAgZGlzY292ZXJUYXNrQ29tbWFuZHMocnVudGltZSwgeWEpO1xuXG4gIHlhLnJlY29tbWVuZENvbW1hbmRzKCk7XG4gIHlhLnN0cmljdENvbW1hbmRzKCk7XG4gIHlhLnNob3dIZWxwT25GYWlsKGZhbHNlKTtcbiAgeWEud3JhcCh5YXJncy50ZXJtaW5hbFdpZHRoKCkpO1xuICB5YS5vcHRpb24oXCJwb3N0XCIsIHtcbiAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICAgIGRlc2M6IFwiUnVuIHBvc3Qtc3ludGhlc2lzIHN0ZXBzIHN1Y2ggYXMgaW5zdGFsbGluZyBkZXBlbmRlbmNpZXMuIFVzZSAtLW5vLXBvc3QgdG8gc2tpcFwiLFxuICB9KTtcbiAgeWEub3B0aW9uKFwid2F0Y2hcIiwge1xuICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIGRlc2M6IFwiS2VlcCBydW5uaW5nIGFuZCByZXN5bnRoZXNpemUgd2hlbiBwcm9qZW5yYyBjaGFuZ2VzXCIsXG4gICAgYWxpYXM6IFwid1wiLFxuICB9KTtcbiAgeWEub3B0aW9ucyhcImRlYnVnXCIsIHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHQ6IGZhbHNlLCBkZXNjOiBcIkRlYnVnIGxvZ3NcIiB9KTtcbiAgeWEub3B0aW9ucyhcInJjXCIsIHtcbiAgICBkZXByZWNhdGVkOiB0cnVlLFxuICAgIGRlc2M6IFwicGF0aCB0byAucHJvamVucmMuanMgZmlsZVwiLFxuICAgIC8vIG11c3QgYmUgYGRlZmF1bHREZXNjcmlwdGlvbmAgYW5kIG5vdCBhbiBhY3R1YWwgYGRlZmF1bHRgIHZhbHVlLFxuICAgIC8vIHNpbmNlIGEgZGVmYXVsdCB3b3VsZCBtYWtlIHRoZSBDTEkgdGhpbmsgLS1yYyB3YXMgcGFzc2VkXG4gICAgLy8gYW5kIGxhdGVyIHNraXAgYSBwZXJmZWN0bHkgZmluZSBtb2Rlcm4gZGVmYXVsdCB0YXNrLlxuICAgIC8vIFRoZSBhY3R1YWwgZGVmYXVsdCB2YWx1ZSBpcyBzZXQgYWdhaW4gbGF0ZXIgb24uXG4gICAgZGVmYXVsdERlc2NyaXB0aW9uOiByZXNvbHZlKERFRkFVTFRfUFJPSkVOX1JDX0pTX0ZJTEVOQU1FKSxcbiAgICB0eXBlOiBcInN0cmluZ1wiLFxuICB9KTtcbiAgeWEuY29tcGxldGlvbigpO1xuICB5YS5oZWxwKCk7XG5cbiAgLy8gZG8gbm90IHVzZSB0aGUgZGVmYXVsdCB5YXJncyAnLS12ZXJzaW9uJyBpbXBsZW1lbnRhdGlvbiBzaW5jZSBpdCBpc1xuICAvLyBnbG9iYWwgYnkgZGVmYXVsdCAoaXQgYXBwZWFycyBvbiBhbGwgc3ViY29tbWFuZHMpXG4gIHlhLnZlcnNpb24oZmFsc2UpO1xuICB5YS5vcHRpb24oXCJ2ZXJzaW9uXCIsIHtcbiAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICBkZXNjcmlwdGlvbjogXCJTaG93IHZlcnNpb24gbnVtYmVyXCIsXG4gICAgZ2xvYmFsOiBmYWxzZSxcbiAgfSk7XG5cbiAgY29uc3QgYXJncyA9IGF3YWl0IHlhLmFyZ3Y7XG5cbiAgaWYgKGFyZ3MuZGVidWcpIHtcbiAgICBwcm9jZXNzLmVudi5ERUJVRyA9IFwidHJ1ZVwiO1xuICB9XG5cbiAgY29uc3Qgbm9kZVZlcnNpb24gPSBnZXROb2RlTWFqb3JWZXJzaW9uKCk7XG4gIGlmIChub2RlVmVyc2lvbiAmJiBub2RlVmVyc2lvbiA8IDE2KSB7XG4gICAgbG9nZ2luZy53YXJuKFxuICAgICAgYFdBUk5JTkc6IFlvdSBhcmUgdXNpbmcgTm9kZSB2JHtub2RlVmVyc2lvbn0sIHdoaWNoIHJlYWNoZXMgZW5kIG9mIGxpZmUgb24gQXByaWwgMzAsIDIwMjMuIFN1cHBvcnQgZm9yIEVPTCBOb2RlIHJlbGVhc2VzIG1heSBiZSBkcm9wcGVkIGJ5IHByb2plbiBpbiB0aGUgZnV0dXJlLiBQbGVhc2UgY29uc2lkZXIgdXBncmFkaW5nIHRvIE5vZGUgPj0gMTYgYXMgc29vbiBhcyBwb3NzaWJsZS5gXG4gICAgKTtcbiAgfVxuXG4gIC8vIG5vIGNvbW1hbmQgbWVhbnMgc3ludGhlc2l6ZVxuICBpZiAoYXJncy5fLmxlbmd0aCA9PT0gMCkge1xuICAgIGlmIChhcmdzLnZlcnNpb24pIHtcbiAgICAgIGNvbnNvbGUubG9nKFBST0pFTl9WRVJTSU9OKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICB9XG4gICAgYXdhaXQgc3ludGgocnVudGltZSwge1xuICAgICAgcG9zdDogYXJncy5wb3N0IGFzIGJvb2xlYW4sXG4gICAgICB3YXRjaDogYXJncy53YXRjaCBhcyBib29sZWFuLFxuICAgICAgcmNmaWxlOiBhcmdzLnJjIGFzIHN0cmluZyxcbiAgICB9KTtcbiAgfVxufVxuXG5tYWluKCkuY2F0Y2goKGUpID0+IHtcbiAgY29uc29sZS5lcnJvcihlLnN0YWNrKTtcbiAgcHJvY2Vzcy5leGl0KDEpO1xufSk7XG4iXX0=