@jahed/terraform
Version:
A wrapper which downloads and runs Terraform locally via npm.
45 lines (44 loc) • 1.52 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.getOutputs = void 0;
const find_cache_dir_1 = __importDefault(require("find-cache-dir"));
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const getFilenames = (version) => {
if (process.platform === "win32") {
return {
originalFilename: "terraform.exe",
versionedFilename: `terraform-v${version}.exe`,
};
}
return {
originalFilename: "terraform",
versionedFilename: `terraform-v${version}`,
};
};
const getOutputs = () => {
const packageJson = JSON.parse(fs_1.default
.readFileSync(path_1.default.resolve(__dirname, "../package.json"))
.toString("utf-8"));
const version = packageJson.version.split("-")[0];
const cacheDir = (0, find_cache_dir_1.default)({
name: packageJson.name,
cwd: process.env.INIT_CWD,
});
if (!cacheDir) {
throw new Error("could not find cache directory");
}
const { originalFilename, versionedFilename } = getFilenames(version);
const execPath = path_1.default.resolve(cacheDir, versionedFilename);
return {
version,
path: execPath,
filename: versionedFilename,
versionedFilename,
originalFilename,
};
};
exports.getOutputs = getOutputs;