mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			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;
 |