UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

83 lines 3.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConfig = getConfig; exports.deleteNonDefaultConfig = deleteNonDefaultConfig; const tslib_1 = require("tslib"); const is_1 = tslib_1.__importDefault(require("@sindresorhus/is")); const fs_extra_1 = tslib_1.__importDefault(require("fs-extra")); const logger_1 = require("../../../../logger"); const util_1 = require("./util"); async function getConfig(env) { let config = {}; const configFile = env.RENOVATE_ADDITIONAL_CONFIG_FILE; if (!configFile) { logger_1.logger.debug('No additional config file found specified - skipping'); return config; } const configFileExists = await fs_extra_1.default.pathExists(configFile); if (!configFileExists) { // Unsure what behavior is expected here logger_1.logger.fatal({ configFile }, `Custom additional config file specified in RENOVATE_ADDITIONAL_CONFIG_FILE must exist`); process.exit(1); } logger_1.logger.debug('Checking for additional config file in ' + configFile); try { config = await (0, util_1.getParsedContent)(configFile); } catch (err) { if (err instanceof SyntaxError || err instanceof TypeError) { // Unsure what behavior is expected here logger_1.logger.fatal({ error: err.stack }, 'Could not parse additional config file'); process.exit(1); } else if (err instanceof ReferenceError) { // Unsure what behavior is expected here logger_1.logger.fatal(`Error parsing additional config file due to unresolved variable(s): ${err.message}`); process.exit(1); } else if (err.message === 'Unsupported file type') { logger_1.logger.fatal(err.message); process.exit(1); } else if (env.RENOVATE_ADDITIONAL_CONFIG_FILE) { logger_1.logger.debug({ err }, 'Parse error'); logger_1.logger.fatal('Error parsing additional config file'); process.exit(1); } logger_1.logger.debug('Error reading or parsing additional config file - skipping'); } if (is_1.default.nonEmptyObject(config.processEnv)) { const exportedKeys = []; for (const [key, value] of Object.entries(config.processEnv)) { if (!is_1.default.nonEmptyString(value)) { logger_1.logger.error({ key }, 'processEnv value is not a string.'); continue; } exportedKeys.push(key); process.env[key] = value; } logger_1.logger.debug({ keys: exportedKeys }, 'processEnv keys were exported to env'); delete config.processEnv; } return (0, util_1.migrateAndValidateConfig)(config, configFile); } async function deleteNonDefaultConfig(env, deleteConfigFile) { const configFile = env.RENOVATE_ADDITIONAL_CONFIG_FILE; if (is_1.default.undefined(configFile) || is_1.default.emptyStringOrWhitespace(configFile)) { return; } if (!deleteConfigFile) { return; } if (!(await fs_extra_1.default.pathExists(configFile))) { return; } try { await fs_extra_1.default.remove(configFile); logger_1.logger.trace({ path: configFile }, 'Additional config file successfully deleted'); } catch (err) { logger_1.logger.warn({ err }, 'Error deleting additional config file'); } } //# sourceMappingURL=additional-config-file.js.map