Mirror von
				https://github.com/therootcompany/greenlock.js.git
				synchronisiert 2024-11-16 17:29:00 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			78 Zeilen
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 Zeilen
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| var Rc = module.exports;
 | |
| var fs = require('fs');
 | |
| var path = require('path');
 | |
| 
 | |
| // This is only called if packageRoot is specified
 | |
| // (which it should be most of the time)
 | |
| Rc._initSync = function(dirname, manager, configDir) {
 | |
|     if (!dirname) {
 | |
|         return {};
 | |
|     }
 | |
| 
 | |
|     // dirname / opts.packageRoot
 | |
|     var rcpath = path.resolve(dirname, '.greenlockrc');
 | |
|     var rc;
 | |
| 
 | |
|     try {
 | |
|         rc = JSON.parse(fs.readFileSync(rcpath));
 | |
|     } catch (e) {
 | |
|         if ('ENOENT' !== e.code) {
 | |
|             throw e;
 | |
|         }
 | |
|         rc = {};
 | |
|     }
 | |
| 
 | |
|     var changed = true;
 | |
| 
 | |
|     // In the general case the manager should be specified in the
 | |
|     // config file, which is in the config dir, but for the specific
 | |
|     // case in which all custom plugins are being used and no config
 | |
|     // dir is needed, we allow the manager to be read from the rc.
 | |
|     // ex: manager: { module: 'name', xxxx: 'xxxx' }
 | |
|     if (manager) {
 | |
|         if (rc.manager) {
 | |
|             if (
 | |
|                 ('string' === typeof rc.manager && rc.manager !== manager) ||
 | |
|                 ('string' !== typeof rc.manager &&
 | |
|                     rc.manager.module !== manager.module)
 | |
|             ) {
 | |
|                 changed = true;
 | |
|                 console.info(
 | |
|                     "changing `manager` from '%s' to '%s'",
 | |
|                     rc.manager.module || rc.manager,
 | |
|                     manager.module || manager
 | |
|                 );
 | |
|             }
 | |
|         }
 | |
|         rc.manager = manager;
 | |
|     }
 | |
| 
 | |
|     if (!configDir) {
 | |
|         configDir = rc.configDir;
 | |
|     }
 | |
| 
 | |
|     if (configDir && configDir !== rc.configDir) {
 | |
|         if (rc.configDir) {
 | |
|             console.info(
 | |
|                 "changing `configDir` from '%s' to '%s'",
 | |
|                 rc.configDir,
 | |
|                 configDir
 | |
|             );
 | |
|         }
 | |
|         changed = true;
 | |
|         rc.configDir = configDir;
 | |
|     } else if (!rc.configDir) {
 | |
|         changed = true;
 | |
|         configDir = './greenlock.d';
 | |
|         rc.configDir = configDir;
 | |
|     }
 | |
| 
 | |
|     if (changed) {
 | |
|         fs.writeFileSync(rcpath, JSON.stringify(rc));
 | |
|     }
 | |
| 
 | |
|     return rc;
 | |
| };
 |