UNPKG

alwaysai

Version:

The alwaysAI command-line interface (CLI)

61 lines 2.43 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findOrWriteDockerfileComponent = void 0; const fs_1 = require("fs"); const alwayscli_1 = require("@alwaysai/alwayscli"); const general_1 = require("../general"); const util_1 = require("../../util"); const infrastructure_1 = require("../../infrastructure"); const constants_1 = require("../../constants"); const paths_1 = require("../../paths"); const WRITE_MESSAGE = `Write ${paths_1.DOCKERFILE}`; const FOUND_MESSAGE = `Found ${paths_1.DOCKERFILE}`; async function findOrWriteDockerfileComponent(props) { const { yes } = props; if ((0, fs_1.existsSync)(paths_1.DOCKERFILE)) { (0, util_1.Spinner)(FOUND_MESSAGE).succeed(); } else { // !exists const confirmed = yes || (await (0, general_1.confirmWriteFilePromptComponent)({ fileName: paths_1.DOCKERFILE })); if (!confirmed) { throw new alwayscli_1.CliTerseError((0, util_1.UnableToProceedWithoutMessage)(paths_1.DOCKERFILE)); } const spinner = (0, util_1.Spinner)(WRITE_MESSAGE); let bucket; switch ((0, infrastructure_1.getSystemId)()) { case 'development': { bucket = 'alwaysai-artifacts-dev'; break; } case 'qa': { bucket = 'alwaysai-artifacts-qa'; break; } case 'production': case 'local': default: bucket = 'alwaysai-artifacts-prod'; } const parsed = await (0, util_1.downloadJson)(`https://${bucket}.s3.us-west-1.amazonaws.com/edgeiq/edgeiq.json`); const version = parsed.docker; try { (0, fs_1.writeFileSync)(paths_1.DOCKERFILE, `ARG ALWAYSAI_HW="default"\nFROM ${constants_1.DOCKER_EDGEIQ_REPOSITORY_NAME}:$\{ALWAYSAI_HW}-${version}\n`, { flag: 'wx' }); spinner.succeed(); } catch (exception) { if (exception.code === 'EEXIST') { // Unlikely scenario that the file did not exist but now does spinner.succeed(FOUND_MESSAGE); } else { spinner.fail(); throw exception; } } } } exports.findOrWriteDockerfileComponent = findOrWriteDockerfileComponent; //# sourceMappingURL=find-or-write-dockerfile-component.js.map