@onboardbase/cli
Version:
[](https://www.npmjs.com/package/@onboardbase/cli) [](https://www.npmjs.com/package/@onboardbase/cli) [ • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const command_1 = require("@oclif/command");
const chalk = require("chalk");
const fs_1 = require("fs");
const utils_1 = require("../../utils");
class Decrypt extends command_1.Command {
async run() {
var _a;
const { flags } = this.parse(Decrypt);
const pathToFile = (_a = flags.file) !== null && _a !== void 0 ? _a : "./terraform.tfstate";
if ((0, utils_1.isExist)(pathToFile) || pathToFile === "-") {
let fileContent;
if (pathToFile === "-") {
const stdin = (0, fs_1.readFileSync)(0, "utf-8");
fileContent = stdin;
}
else
fileContent = (0, fs_1.readFileSync)(pathToFile, "utf-8");
if (!(0, utils_1.isJSON)(fileContent)) {
const decryptedContents = await (0, utils_1.decryptGenericSecret)(fileContent, flags["enc-key"]);
(0, fs_1.writeFileSync)(pathToFile === "-" ? "./terraform.tfstate" : pathToFile, JSON.parse(JSON.stringify(decryptedContents)));
}
}
else
this.error(`Could not locate file: ${pathToFile}`);
console.log(chalk.greenBright("TF State file decrypted successfully."));
}
}
exports.default = Decrypt;
Decrypt.description = "Decrypt a TF state command back to how it was";
Decrypt.flags = {
help: command_1.flags.help({ char: "h" }),
"enc-key": command_1.flags.string({
description: "Encryption Key",
required: false,
}),
file: command_1.flags.string({
char: "f",
description: "Path to file",
required: false,
}),
};