import * as plugins from "./plugins.js"; import * as paths from "./paths.js"; import { getProcessUserArgv, getRawCliMode, parseCliArgv, } from "./helpers.climode.js"; import { commitinfo } from "./00_commitinfo_data.js"; const runParsedCommand = async (argvArg: any): Promise => { const command = argvArg._?.[0]; switch (command) { case undefined: case "help": { const modStandard = await import("./mod_standard/index.js"); await modStandard.run(argvArg); break; } case "commit": { const modCommit = await import("./mod_commit/index.js"); await modCommit.run(argvArg); break; } case "release": { const modRelease = await import("./mod_release/index.js"); await modRelease.run(argvArg); break; } case "deprecate": { const modDeprecate = await import("./mod_deprecate/index.js"); await modDeprecate.run(); break; } case "docker": { const modDocker = await import("./mod_docker/index.js"); await modDocker.run(argvArg); break; } case "format": { const modFormat = await import("./mod_format/index.js"); await modFormat.run({ ...argvArg, write: argvArg.write || argvArg.w, dryRun: argvArg["dry-run"], yes: argvArg.yes || argvArg.y, planOnly: argvArg["plan-only"] || argvArg.planOnly, savePlan: argvArg["save-plan"] || argvArg.savePlan, fromPlan: argvArg["from-plan"] || argvArg.fromPlan, detailed: argvArg.detailed, interactive: argvArg.interactive !== false, verbose: argvArg.verbose, diff: argvArg.diff, }); break; } case "meta": { const modMeta = await import("./mod_meta/index.js"); await modMeta.run(argvArg); break; } case "open": { const modOpen = await import("./mod_open/index.js"); await modOpen.run(argvArg); break; } case "template": { const modTemplate = await import("./mod_template/index.js"); await modTemplate.run(argvArg); break; } case "start": { const modStart = await import("./mod_start/index.js"); await modStart.run(argvArg); break; } case "helpers": { const modHelpers = await import("./mod_helpers/index.js"); await modHelpers.run(argvArg); break; } case "tools": { const modTools = await import("./mod_tools/index.js"); await modTools.run(argvArg); break; } case "config": { const modConfig = await import("./mod_config/index.js"); await modConfig.run(argvArg); break; } case "services": { const modServices = await import("./mod_services/index.js"); await modServices.run(argvArg); break; } default: { const modStandard = await import("./mod_standard/index.js"); await modStandard.run(argvArg); } } }; export let run = async () => { const rawCliMode = await getRawCliMode(); // get packageInfo const projectInfo = new plugins.projectinfo.ProjectInfo(paths.packageDir); const projectInfoVersion = (projectInfo.npm as any)?.version; const packageVersion = typeof projectInfoVersion === "string" && projectInfoVersion.length > 0 ? projectInfoVersion : commitinfo.version; // check for updates if (rawCliMode.checkUpdates) { const smartupdateInstance = new plugins.smartupdate.SmartUpdate(); try { await smartupdateInstance.check( "gitzone", packageVersion, "http://gitzone.gitlab.io/gitzone/changelog.html", ); } catch { // Update checks must never block actual CLI commands. } } if (rawCliMode.output === "human") { console.log("---------------------------------------------"); } const argvArg = parseCliArgv(getProcessUserArgv()); if (argvArg.v || argvArg.version) { console.log(packageVersion); return; } await runParsedCommand(argvArg); };