projen
Version:
CDK for software projects
104 lines • 10.1 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const yargs_1 = __importDefault(require("yargs"));
const helpers_1 = require("yargs/helpers");
const common_1 = require("../common");
const logging = __importStar(require("../logging"));
const util_1 = require("../util");
const new_1 = __importDefault(require("./cmds/new"));
const run_task_1 = require("./cmds/run-task");
const synth_1 = require("./cmds/synth");
const task_runtime_1 = require("./task-runtime");
async function main() {
const ya = (0, yargs_1.default)((0, helpers_1.hideBin)(process.argv));
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, run_task_1.discoverTaskCommands)(runtime, ya);
ya.recommendCommands();
ya.strictCommands();
ya.showHelpOnFail(false);
ya.wrap(ya.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.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,
});
}
}
main().catch((e) => {
console.error(e.stack);
process.exit(1);
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2xpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDJDQUF3QztBQUN4QyxzQ0FBdUQ7QUFDdkQsb0RBQXNDO0FBQ3RDLGtDQUFzRDtBQUN0RCxxREFBb0M7QUFDcEMsOENBQXVEO0FBQ3ZELHdDQUFxQztBQUNyQyxpREFBNkM7QUFFN0MsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxFQUFFLEdBQUcsSUFBQSxlQUFLLEVBQUMsSUFBQSxpQkFBTyxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3hDLEVBQUUsQ0FBQyxPQUFPLENBQUMsYUFBVSxDQUFDLENBQUM7SUFFdkIsTUFBTSxlQUFlLEdBQUcsSUFBQSxhQUFNLEVBQUMsbUJBQVUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLDBCQUFXLENBQUMsZUFBZSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELElBQUEsK0JBQW9CLEVBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWxDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3ZCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQixFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDNUIsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDaEIsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsSUFBSTtRQUNiLElBQUksRUFBRSxpRkFBaUY7S0FDeEYsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDakIsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsS0FBSztRQUNkLElBQUksRUFBRSxxREFBcUQ7UUFDM0QsS0FBSyxFQUFFLEdBQUc7S0FDWCxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM3RSxFQUFFLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDaEIsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBRVYsc0VBQXNFO0lBQ3RFLG9EQUFvRDtJQUNwRCxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ25CLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxNQUFNLEVBQUUsS0FBSztLQUNkLENBQUMsQ0FBQztJQUVILE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztJQUUzQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBQSwwQkFBbUIsR0FBRSxDQUFDO0lBQzFDLElBQUksV0FBVyxJQUFJLFdBQVcsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNwQyxPQUFPLENBQUMsSUFBSSxDQUNWLGdDQUFnQyxXQUFXLG1MQUFtTCxDQUMvTixDQUFDO0lBQ0osQ0FBQztJQUVELDhCQUE4QjtJQUM5QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQWMsQ0FBQyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUNELE1BQU0sSUFBQSxhQUFLLEVBQUMsT0FBTyxFQUFFO1lBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsSUFBZTtZQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQWdCO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7SUFDakIsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB5YXJncyBmcm9tIFwieWFyZ3NcIjtcbmltcG9ydCB7IGhpZGVCaW4gfSBmcm9tIFwieWFyZ3MvaGVscGVyc1wiO1xuaW1wb3J0IHsgUFJPSkVOX0RJUiwgUFJPSkVOX1ZFUlNJT04gfSBmcm9tIFwiLi4vY29tbW9uXCI7XG5pbXBvcnQgKiBhcyBsb2dnaW5nIGZyb20gXCIuLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBmaW5kVXAsIGdldE5vZGVNYWpvclZlcnNpb24gfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IG5ld0NvbW1hbmQgZnJvbSBcIi4vY21kcy9uZXdcIjtcbmltcG9ydCB7IGRpc2NvdmVyVGFza0NvbW1hbmRzIH0gZnJvbSBcIi4vY21kcy9ydW4tdGFza1wiO1xuaW1wb3J0IHsgc3ludGggfSBmcm9tIFwiLi9jbWRzL3N5bnRoXCI7XG5pbXBvcnQgeyBUYXNrUnVudGltZSB9IGZyb20gXCIuL3Rhc2stcnVudGltZVwiO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCB5YSA9IHlhcmdzKGhpZGVCaW4ocHJvY2Vzcy5hcmd2KSk7XG4gIHlhLmNvbW1hbmQobmV3Q29tbWFuZCk7XG5cbiAgY29uc3QgcGF0aFRvUHJvamVuRGlyID0gZmluZFVwKFBST0pFTl9ESVIsIHByb2Nlc3MuY3dkKCkpO1xuICBjb25zdCBydW50aW1lID0gbmV3IFRhc2tSdW50aW1lKHBhdGhUb1Byb2plbkRpciA/PyBcIi5cIik7XG4gIGRpc2NvdmVyVGFza0NvbW1hbmRzKHJ1bnRpbWUsIHlhKTtcblxuICB5YS5yZWNvbW1lbmRDb21tYW5kcygpO1xuICB5YS5zdHJpY3RDb21tYW5kcygpO1xuICB5YS5zaG93SGVscE9uRmFpbChmYWxzZSk7XG4gIHlhLndyYXAoeWEudGVybWluYWxXaWR0aCgpKTtcbiAgeWEub3B0aW9uKFwicG9zdFwiLCB7XG4gICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgICBkZXNjOiBcIlJ1biBwb3N0LXN5bnRoZXNpcyBzdGVwcyBzdWNoIGFzIGluc3RhbGxpbmcgZGVwZW5kZW5jaWVzLiBVc2UgLS1uby1wb3N0IHRvIHNraXBcIixcbiAgfSk7XG4gIHlhLm9wdGlvbihcIndhdGNoXCIsIHtcbiAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICBkZXNjOiBcIktlZXAgcnVubmluZyBhbmQgcmVzeW50aGVzaXplIHdoZW4gcHJvamVucmMgY2hhbmdlc1wiLFxuICAgIGFsaWFzOiBcIndcIixcbiAgfSk7XG4gIHlhLm9wdGlvbnMoXCJkZWJ1Z1wiLCB7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0OiBmYWxzZSwgZGVzYzogXCJEZWJ1ZyBsb2dzXCIgfSk7XG4gIHlhLmNvbXBsZXRpb24oKTtcbiAgeWEuaGVscCgpO1xuXG4gIC8vIGRvIG5vdCB1c2UgdGhlIGRlZmF1bHQgeWFyZ3MgJy0tdmVyc2lvbicgaW1wbGVtZW50YXRpb24gc2luY2UgaXQgaXNcbiAgLy8gZ2xvYmFsIGJ5IGRlZmF1bHQgKGl0IGFwcGVhcnMgb24gYWxsIHN1YmNvbW1hbmRzKVxuICB5YS52ZXJzaW9uKGZhbHNlKTtcbiAgeWEub3B0aW9uKFwidmVyc2lvblwiLCB7XG4gICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgZGVzY3JpcHRpb246IFwiU2hvdyB2ZXJzaW9uIG51bWJlclwiLFxuICAgIGdsb2JhbDogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IGFyZ3MgPSBhd2FpdCB5YS5hcmd2O1xuXG4gIGlmIChhcmdzLmRlYnVnKSB7XG4gICAgcHJvY2Vzcy5lbnYuREVCVUcgPSBcInRydWVcIjtcbiAgfVxuXG4gIGNvbnN0IG5vZGVWZXJzaW9uID0gZ2V0Tm9kZU1ham9yVmVyc2lvbigpO1xuICBpZiAobm9kZVZlcnNpb24gJiYgbm9kZVZlcnNpb24gPCAxNikge1xuICAgIGxvZ2dpbmcud2FybihcbiAgICAgIGBXQVJOSU5HOiBZb3UgYXJlIHVzaW5nIE5vZGUgdiR7bm9kZVZlcnNpb259LCB3aGljaCByZWFjaGVzIGVuZCBvZiBsaWZlIG9uIEFwcmlsIDMwLCAyMDIzLiBTdXBwb3J0IGZvciBFT0wgTm9kZSByZWxlYXNlcyBtYXkgYmUgZHJvcHBlZCBieSBwcm9qZW4gaW4gdGhlIGZ1dHVyZS4gUGxlYXNlIGNvbnNpZGVyIHVwZ3JhZGluZyB0byBOb2RlID49IDE2IGFzIHNvb24gYXMgcG9zc2libGUuYCxcbiAgICApO1xuICB9XG5cbiAgLy8gbm8gY29tbWFuZCBtZWFucyBzeW50aGVzaXplXG4gIGlmIChhcmdzLl8ubGVuZ3RoID09PSAwKSB7XG4gICAgaWYgKGFyZ3MudmVyc2lvbikge1xuICAgICAgY29uc29sZS5sb2coUFJPSkVOX1ZFUlNJT04pO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH1cbiAgICBhd2FpdCBzeW50aChydW50aW1lLCB7XG4gICAgICBwb3N0OiBhcmdzLnBvc3QgYXMgYm9vbGVhbixcbiAgICAgIHdhdGNoOiBhcmdzLndhdGNoIGFzIGJvb2xlYW4sXG4gICAgfSk7XG4gIH1cbn1cblxubWFpbigpLmNhdGNoKChlKSA9PiB7XG4gIGNvbnNvbGUuZXJyb3IoZS5zdGFjayk7XG4gIHByb2Nlc3MuZXhpdCgxKTtcbn0pO1xuIl19