env-sync-cli-tool
Version:
CLI tool to auto-generate and sync .env.example from .env
43 lines (34 loc) • 1.03 kB
JavaScript
const fs = require("fs");
const chokidar = require("chokidar");
const path = require("path");
const ENV_PATH = path.resolve(process.cwd(), ".env");
const EXAMPLE_PATH = path.resolve(process.cwd(), ".env.example");
function generateEnvExample() {
if (!fs.existsSync(ENV_PATH)) {
console.error(".env file not found.");
return;
}
const envContent = fs.readFileSync(ENV_PATH, "utf-8");
const exampleContent = envContent
.split("\n")
.filter((line) => line.trim() !== "" && !line.startsWith("#"))
.map((line) => {
const [key] = line.split("=");
return `${key}=`;
})
.join("\n");
fs.writeFileSync(EXAMPLE_PATH, exampleContent);
console.log("✅ .env.example generated.");
}
function startWatcher() {
chokidar.watch(ENV_PATH).on("change", () => {
console.log("🔄 Detected change in .env. Regenerating...");
generateEnvExample();
});
}
const args = process.argv.slice(2);
generateEnvExample();
if (args.includes("--watch")) {
startWatcher();
}