@launchql/cli
Version:
LaunchQL CLI
63 lines (58 loc) • 2.23 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@launchql/core");
const logger_1 = require("@launchql/logger");
const log = new logger_1.Logger('plan');
const planUsageText = `
LaunchQL Plan Command:
lql plan [OPTIONS]
Generate module deployment plans.
Options:
--help, -h Show this help message
--includePackages Include packages in plan (default: true)
--includeTags Prefer @tag references for external packages when available (default: true)
--cwd <directory> Working directory (default: current directory)
Examples:
lql plan Generate deployment plan for current module with defaults
lql plan --includePackages false Disable including external packages
lql plan --includeTags false Do not prefer tags for external packages
`;
exports.default = async (argv, prompter, _options) => {
// Show usage if explicitly requested
if (argv.help || argv.h) {
console.log(planUsageText);
process.exit(0);
}
const questions = [
{
type: 'confirm',
name: 'includePackages',
message: 'Include packages in plan?',
useDefault: true,
default: true
},
{
type: 'confirm',
name: 'includeTags',
message: 'Prefer @tag references for external packages when available?',
useDefault: true,
default: true
}
];
let { cwd, includePackages, includeTags } = await prompter.prompt(argv, questions);
if (!cwd) {
cwd = process.cwd();
log.info(`Using current directory: ${cwd}`);
}
const pkg = new core_1.LaunchQLPackage(cwd);
if (!pkg.isInModule()) {
throw new Error('This command must be run inside a LaunchQL module.');
}
const includePackagesFlag = typeof includePackages === 'boolean' ? includePackages : true;
const includeTagsFlag = typeof includeTags === 'boolean' ? includeTags : true;
pkg.writeModulePlan({
includePackages: includePackagesFlag,
includeTags: includeTagsFlag
});
return argv;
};
;