138 lines
3.9 KiB
TypeScript
138 lines
3.9 KiB
TypeScript
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<void> => {
|
|
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);
|
|
};
|