UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

68 lines 2.85 kB
"use strict"; 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