UNPKG

@onboardbase/cli

Version:

[![Version](https://img.shields.io/npm/v/@onboardbase/cli.svg)](https://www.npmjs.com/package/@onboardbase/cli) [![Downloads/week](https://img.shields.io/npm/dw/@onboardbase/cli.svg)](https://www.npmjs.com/package/@onboardbase/cli) [![License](https://img

44 lines (43 loc) 1.7 kB
"use strict"; 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, }), };