UNPKG

tateru-cli

Version:

Simple CLI static site builder tool with Twig.

101 lines (99 loc) 7.2 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 = parseCLIArgs; 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((0, 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; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaS9zZXJ2aWNlcy9jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFrQ0Esb0NBOEVDO0FBaEhELDJCQUFrQztBQUNsQyxnREFBd0I7QUFFeEIsc0RBSWtDO0FBS2xDLFNBQVMsU0FBUztJQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUM7Ozs7Ozs7Ozs7OztDQVlmLENBQUMsQ0FBQztBQUNILENBQUM7QUFRRCxTQUFnQixZQUFZLENBQUMsUUFBZ0I7SUFDekMsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQW1CO1FBQzVCLFVBQVUsRUFBRSxrQ0FBd0I7UUFDcEMsR0FBRyxFQUFFLHlCQUFlO0tBQ3ZCLENBQUM7SUFHRixNQUFNLGVBQWUsR0FBRyxjQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUMvRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUEsaUJBQVksRUFBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUV2RSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQixRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ1YsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLElBQUk7Z0JBQ0wsU0FBUyxFQUFFLENBQUM7Z0JBQ1osT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEIsTUFBTTtZQUNWLEtBQUssV0FBVyxDQUFDO1lBQ2pCLEtBQUssSUFBSTtnQkFDTCxPQUFPLENBQUMsR0FBRyxDQUFD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