@aminya/dotenv-vault
Version:
A secrets manager for .env files – from the same people that pioneered dotenv.
77 lines (76 loc) • 2.42 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AppendToDockerignoreService = void 0;
const fs_1 = require("fs");
class AppendToDockerignoreService {
get dockerignore() {
return '.dockerignore';
}
get envFormat() {
return '.env*'; // asterisk
}
get flaskenvFormat() {
return '.flaskenv*';
}
get envProjectFormat() {
return '!.env.project';
}
get envVaultFormat() {
return '!.env.vault';
}
missing() {
return !(0, fs_1.existsSync)(this.dockerignore);
}
append(str) {
(0, fs_1.appendFileSync)(this.dockerignore, str);
}
touch() {
(0, fs_1.writeFileSync)(this.dockerignore, '');
}
read() {
return (0, fs_1.readFileSync)(this.dockerignore, 'utf8');
}
async run() {
let envExists = false;
let flaskenvExists = false;
let envProjectExists = false;
let envVaultExists = false;
if (this.missing()) {
// ignore. must not be a docker project
}
else {
// 2. iterate over dockerignore lines
const lines = this.read().split(/\r?\n/);
// 3. for each line check if ignore already exists
for (const line of lines) {
const trimLine = line.trim();
if (trimLine === this.envFormat) {
envExists = true;
}
if (trimLine === this.flaskenvFormat) {
flaskenvExists = true;
}
if (trimLine === this.envProjectFormat) {
envProjectExists = true;
}
if (trimLine === this.envVaultFormat) {
envVaultExists = true;
}
}
// 4. add ignore if it does not already exist
if (envExists === false) {
this.append('\n' + this.envFormat);
}
if (flaskenvExists === false) {
this.append('\n' + this.flaskenvFormat);
}
if (envProjectExists === false) {
this.append('\n' + this.envProjectFormat);
}
if (envVaultExists === false) {
this.append('\n' + this.envVaultFormat);
}
}
}
}
exports.AppendToDockerignoreService = AppendToDockerignoreService;