alwaysai
Version:
The alwaysAI command-line interface (CLI)
61 lines • 2.43 kB
JavaScript
;
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