mirror of
https://github.com/grafana/grafana.git
synced 2025-07-24 09:52:11 +08:00

* restrict imports from @grafana/ui/src paths * prevent path imports from all grafana packages * just run on ui, runtime, data packages * update
36 lines
993 B
JavaScript
36 lines
993 B
JavaScript
// @ts-check
|
|
const { parse } = require('ini');
|
|
const { readFileSync, existsSync } = require('node:fs');
|
|
const path = require('path');
|
|
|
|
const getEnvConfig = () => {
|
|
const grafanaRoot = path.join(__dirname, '../..');
|
|
const defaultSettings = readFileSync(`${grafanaRoot}/conf/defaults.ini`, {
|
|
encoding: 'utf-8',
|
|
});
|
|
|
|
const customSettings = existsSync(`${grafanaRoot}/conf/custom.ini`)
|
|
? readFileSync(`${grafanaRoot}/conf/custom.ini`, {
|
|
encoding: 'utf-8',
|
|
})
|
|
: '';
|
|
|
|
const defaults = parse(defaultSettings);
|
|
const custom = parse(customSettings);
|
|
|
|
const merged = { ...defaults.frontend_dev, ...custom.frontend_dev };
|
|
|
|
// Take all frontend keys from the ini file and prefix with `frontend_dev_`,
|
|
// so they can be added to `process.env` elsewhere
|
|
/** @type {Record<string, unknown>} */
|
|
const env = {};
|
|
|
|
for (const [key, value] of Object.entries(merged)) {
|
|
env[`frontend_dev_${key}`] = value;
|
|
}
|
|
|
|
return env;
|
|
};
|
|
|
|
module.exports = getEnvConfig;
|