UNPKG

xweb-templating

Version:

A cli tool for converting 'tags' to regular html, php or some other format

42 lines (37 loc) 1.74 kB
import { XwebConfig, read_config } from "./config/config.js"; import { info, status } from "./log.js"; import { save_tagsets } from "./tagset/util.js"; import { run as run_create_config } from "./config/create.js"; import { confirm } from "./log.js"; import { ArgumentsCamelCase } from "yargs"; import path from "path"; import fs from "fs"; export default async function run(argv: ArgumentsCamelCase<{ y: boolean; }>) { let config: XwebConfig; let created_config = false; if (argv.yes || await confirm(argv, "Create 'xwebconfig.json' file?")) { created_config = true; const CONFIG_RESULT = await run_create_config(argv); if (CONFIG_RESULT == null) return; config = CONFIG_RESULT as XwebConfig; info("init/tags_folder", "Using tags folder from config file"); } else { info("init/tags_folder", "Detecting tags folder based on config file or defaults"); config = read_config("init/tags_folder"); } if (argv.yes || await confirm(argv, `Create folder '${config.folder.tags}' for tags?`)) { const TAGS_FOLDER_PATH = path.join(process.cwd(), config.folder.tags); fs.mkdirSync(TAGS_FOLDER_PATH); status("init/tags_folder", `Created folder '${config.folder.tags}'`); } if (argv.yes || await confirm(argv, "Create '.xwebignore' file")) { const IGNORE_FILE_PATH = path.join(process.cwd(), ".xwebignore"); fs.writeFileSync(IGNORE_FILE_PATH, ""); status("init/ignores", "Created file '.xwebignore'"); } if (created_config && config.tags.length > 0 && (argv.yes || await confirm(argv, "Fetch all tagsets from the public github repo?"))) { save_tagsets("init/fetch", config.tags, config); } }