UNPKG

@launchql/cli

Version:
63 lines (58 loc) 2.23 kB
"use strict"; 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; };