alwaysai
Version:
The alwaysAI command-line interface (CLI)
68 lines • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.appCleanComponent = exports.appCleanSshDockerComponent = exports.appCleanDockerComponent = void 0;
const spinner_1 = require("../../util/spinner");
const confirm_prompt_component_1 = require("../general/confirm-prompt-component");
const alwayscli_1 = require("@alwaysai/alwayscli");
const run_with_spinner_1 = require("../../util/run-with-spinner");
const target_json_file_1 = require("../../core/app/target-json-file");
const paths_1 = require("../../paths");
const util_1 = require("../../util");
const app_1 = require("../../core/app");
async function appCleanDockerComponent(props) {
const { targetHostSpawner } = props;
await (0, run_with_spinner_1.runWithSpinner)(async () => {
await targetHostSpawner.rimraf(paths_1.VENV);
await targetHostSpawner.rimraf(paths_1.APP_MODELS_DIRECTORY_NAME);
}, [], 'Clean app directory');
}
exports.appCleanDockerComponent = appCleanDockerComponent;
async function appCleanSshDockerComponent(props) {
const { yes, targetConfig, targetHostSpawner } = props;
if (!yes) {
const { targetHostname, targetPath } = targetConfig;
const cleanDir = await (0, confirm_prompt_component_1.confirmPromptComponent)({
message: `Are you sure you want to delete the outdated target directory (${targetHostname}:${targetPath}) and reinstall the updated app`
});
if (!cleanDir) {
throw new alwayscli_1.CliTerseError('Operation canceled by user');
}
}
const spinner = (0, spinner_1.Spinner)('Delete target directory');
try {
await targetHostSpawner.sanatizedrimraf();
spinner.succeed();
}
catch (exception) {
util_1.logger.error((0, util_1.stringifyError)(exception));
spinner.fail();
throw exception;
}
}
exports.appCleanSshDockerComponent = appCleanSshDockerComponent;
async function appCleanComponent(props) {
const { yes } = props;
const targetJsonFile = (0, target_json_file_1.TargetJsonFile)();
const targetConfig = targetJsonFile.read();
const targetHostSpawner = targetJsonFile.readHostSpawner();
switch (targetConfig.targetProtocol) {
case 'native:':
case 'docker:': {
await (0, run_with_spinner_1.runWithSpinner)(app_1.appCleanDocker, [{ targetHostSpawner }], 'Clean app directory');
break;
}
case 'ssh+docker:': {
await appCleanSshDockerComponent({
yes,
targetConfig,
targetHostSpawner
});
break;
}
default: {
throw new alwayscli_1.CliTerseError('Unsupported protocol');
}
}
}
exports.appCleanComponent = appCleanComponent;
//# sourceMappingURL=app-clean-component.js.map