UNPKG

tateru-cli

Version:

Simple CLI static site builder tool with Twig.

102 lines (100 loc) 7.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseCLIArgs = void 0; const fs_1 = require("fs"); const path_1 = __importDefault(require("path")); const defines_1 = require("../../definition/defines"); function printHelp() { console.log(` Simple CLI static site builder tool with Twig. Usage: npx tateru-cli [CONFIG FILE] [OPTIONS] [ARGS] Options: --env <env>, -e <env> Set build environment (dev or prod). Default is dev. --page <page>, -p <page> Build only a single page from the config. --lang <lang>, -l <lang> Set a single language to build. --help, -h Display help and usage details. --version, -V Display Tateru CLI version. `); } function parseCLIArgs(basePath) { const args = process.argv.slice(2); const options = { configFile: defines_1.DEFAULT_CONFIG_FILE_NAME, env: defines_1.ENV_DEVELOPMENT, }; const packageJsonPath = path_1.default.resolve(basePath, 'package.json'); const packageJson = JSON.parse(fs_1.readFileSync(packageJsonPath, 'utf-8')); for (let i = 0; i < args.length; i++) { const arg = args[i]; switch (arg) { case '--help': case '-h': printHelp(); process.exit(0); break; case '--version': case '-V': console.log(packageJson.version); process.exit(0); break; case '--env': case '-e': if (args[i + 1] && !args[i + 1].startsWith('-')) { options.env = args[i + 1]; i++; } else { console.error('Error: Missing value for --env.'); process.exit(1); } break; case '--page': case '-p': if (args[i + 1] && !args[i + 1].startsWith('-')) { options.page = args[i + 1] || ''; i++; } else { console.error('Error: Missing value for --page.'); process.exit(1); } break; case '--lang': case '-l': if (args[i + 1] && !args[i + 1].startsWith('-')) { options.lang = args[i + 1] || ''; i++; } else { console.error('Error: Missing value for --lang.'); process.exit(1); } break; default: if (arg.startsWith('-')) { console.error(`Error: Unknown option "${arg}"\n`); console.log(`Run "npx tateru-cli --help" to see available options.\n`); process.exit(1); } if (!arg.startsWith('-')) { options.configFile = arg; } break; } } if (process.env.NODE_ENV) { if (process.env.NODE_ENV === 'development') { options.env = defines_1.ENV_DEVELOPMENT; } if (process.env.NODE_ENV === 'production') { options.env = defines_1.ENV_PRODUCTION; } } return options; } exports.parseCLIArgs = parseCLIArgs; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9zZXJ2aWNlcy9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsMkJBQWtDO0FBQ2xDLGdEQUF3QjtBQUV4QixzREFJa0M7QUFLbEMsU0FBUyxTQUFTO0lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQzs7Ozs7Ozs7Ozs7O0NBWWYsQ0FBQyxDQUFDO0FBQ0gsQ0FBQztBQVFELFNBQWdCLFlBQVksQ0FBQyxRQUFnQjtJQUN6QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxNQUFNLE9BQU8sR0FBbUI7UUFDNUIsVUFBVSxFQUFFLGtDQUF3QjtRQUNwQyxHQUFHLEVBQUUseUJBQWU7S0FDdkIsQ0FBQztJQUdGLE1BQU0sZUFBZSxHQUFHLGNBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQVksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUV2RSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEIsUUFBUSxHQUFHLEVBQUU7WUFDVCxLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssSUFBSTtnQkFDTCxTQUFTLEVBQUUsQ0FBQztnQkFDWixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQixNQUFNO1lBQ1YsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxJQUFJO2dCQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dC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