UNPKG

@mailprotector/haraka-plugin-secrets-manager

Version:

A Haraka plugin for parsing config files with EJS to inject environment variables into config files on initialize

38 lines (27 loc) 1.13 kB
((fs, ejs) => { let parseConfig = async (configPath, writeFileSync, plugin) => { await ejs.renderFile(`${process.env.CONFIG_PATH}/${configPath}`, process.env, (ejs_err, fileContents) => { if (ejs_err) { plugin.logerror(`Error loading config - ${process.env.CONFIG_PATH}/config/${configPath}`, plugin); } writeFileSync(`${process.env.CONFIG_PATH}/${configPath}`, fileContents); plugin.loginfo(`${process.env.CONFIG_PATH}/${configPath}`) }); }; let buildPluginFunction = ({ readdirSync, writeFileSync }, ejs) => { return function (done) { let plugin = this; let results = readdirSync(process.env.CONFIG_PATH, { withFileTypes: true }); results = results.filter(f => { return f.isFile() }); results.forEach(f => { parseConfig(f.name, writeFileSync, plugin); }); done(); }; }; exports.load_secrets_test = buildPluginFunction; exports.register = function () { this.register_hook('init_master', 'load_secrets', -100); }; exports.load_secrets = buildPluginFunction(fs, ejs); })(require('fs'), require('ejs'));