alwaysai
Version:
The alwaysAI command-line interface (CLI)
45 lines • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findOrWriteDockerComposeFileComponent = void 0;
const alwayscli_1 = require("@alwaysai/alwayscli");
const general_1 = require("../general");
const paths_1 = require("../../paths");
const util_1 = require("../../util");
const app_1 = require("../../core/app");
const WRITE_MESSAGE = `Write ${paths_1.DOCKER_COMPOSE_FILE}`;
const FOUND_MESSAGE = `Found ${paths_1.DOCKER_COMPOSE_FILE}`;
async function findOrWriteDockerComposeFileComponent(props) {
const { yes, cmd } = props;
const spawner = (0, util_1.JsSpawner)();
if (await spawner.exists(paths_1.DOCKER_COMPOSE_FILE)) {
(0, util_1.Spinner)(FOUND_MESSAGE).succeed();
return true;
}
{
// !exists
const confirmed = yes ||
(await (0, general_1.confirmWriteFilePromptComponent)({
fileName: paths_1.DOCKER_COMPOSE_FILE
}));
if (!confirmed) {
throw new alwayscli_1.CliTerseError((0, util_1.UnableToProceedWithoutMessage)(paths_1.DOCKER_COMPOSE_FILE));
}
const spinner = (0, util_1.Spinner)(WRITE_MESSAGE);
try {
await (0, app_1.writeDockerComposeFile)({ spawner, cmd });
spinner.succeed();
return false;
}
catch (exception) {
if (exception.code === 'EEXIST') {
// Unlikely scenario that the file did not exist but now does
spinner.succeed(FOUND_MESSAGE);
return true;
}
spinner.fail();
throw exception;
}
}
}
exports.findOrWriteDockerComposeFileComponent = findOrWriteDockerComposeFileComponent;
//# sourceMappingURL=find-or-write-docker-compose-file-component.js.map