@sap/cli-core
Version:
Command-Line Interface (CLI) Core Module
39 lines (38 loc) • 1.36 kB
JavaScript
import { SecretsStorageSingleton } from "../cache/secrets/SecretsStorageSingleton.js";
import { getDeprecationMessage, isDeprecated } from "../config/core.js";
import { get } from "../logger/index.js";
import { executeCommand, init } from "./dwc.js";
import { checkVersion, compareEtags, verifyNodeVersion } from "./utils.js";
export const run = async () => {
const { error, debug, output } = get("dwc.run");
let exitCode = 0;
try {
await init();
await checkVersion();
await executeCommand();
}
catch (err) {
if (err.code === "commander.helpDisplayed" ||
err.code === "commander.version") {
debug("Error while running CLI", err.stack);
}
else {
error("Error while running CLI", err.stack);
exitCode = 1;
}
exitCode = err.exitCode ?? exitCode;
}
finally {
await compareEtags();
if (isDeprecated()) {
const message = getDeprecationMessage() ??
"WARNING: This package has been deprecated. Please consult the README or CHANGELOG for more information.";
output(message);
}
await SecretsStorageSingleton.SINGLETON.synchronizeSecretsToStorage();
verifyNodeVersion();
if (exitCode > 0) {
process.exit(exitCode);
}
}
};