alwaysai
Version:
The alwaysAI command-line interface (CLI)
43 lines • 2.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const logSymbols = require("log-symbols");
const app_config_file_1 = require("../util/app-config-file");
const target_config_file_1 = require("../util/target-config-file");
const js_spawner_1 = require("../spawner/js-spawner");
const app_installer_1 = require("../app-installer");
const spin_on_promise_1 = require("../util/spin-on-promise");
const echo_1 = require("../util/echo");
const check_user_is_logged_in_component_1 = require("./check-user-is-logged-in-component");
const check_for_required_files_component_1 = require("./check-for-required-files-component");
async function appDeployComponent(props) {
const { yes } = props;
await check_user_is_logged_in_component_1.checkUserIsLoggedInComponent({ yes });
await check_for_required_files_component_1.checkForRequiredFilesComponent({ yes });
const appConfig = app_config_file_1.appConfigFile.read();
const targetSpawner = target_config_file_1.targetConfigFile.readSpawner();
const targetConfig = target_config_file_1.targetConfigFile.read();
const sourceSpawner = js_spawner_1.JsSpawner();
await targetSpawner.mkdirp();
const appInstaller = app_installer_1.AppInstaller(targetSpawner);
// Protocol-specific installation steps
switch (targetConfig.protocol) {
case 'ssh+docker:': {
await spin_on_promise_1.spinOnPromise(appInstaller.installSource(sourceSpawner), 'Copy application to target');
}
}
let hasModels = false;
if (appConfig.models) {
const ids = Object.keys(appConfig.models);
if (ids.length > 0) {
hasModels = true;
await spin_on_promise_1.spinOnPromise(appInstaller.installModels(appConfig.models), `Model${ids.length > 1 ? 's' : ''} ${ids.join(' ')}`);
}
}
if (!hasModels) {
echo_1.echo(`${logSymbols.warning} Application has no models`);
}
await spin_on_promise_1.spinOnPromise(appInstaller.installVirtualenv(), 'Install python virtualenv');
await spin_on_promise_1.spinOnPromise(appInstaller.installPythonDeps(), 'Install python dependencies');
}
exports.appDeployComponent = appDeployComponent;
//# sourceMappingURL=app-deploy-component.js.map