|  |  |  | /* eslint-disable more/no-then, no-console  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = grunt => { | 
					
						
							|  |  |  |   grunt.initConfig({ | 
					
						
							|  |  |  |     pkg: grunt.file.readJSON('package.json'), | 
					
						
							|  |  |  |     gitinfo: {}, // to be populated by grunt gitinfo
 | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   Object.keys(grunt.config.get('pkg').devDependencies).forEach(key => { | 
					
						
							|  |  |  |     if (/^grunt(?!(-cli)?$)/.test(key)) { | 
					
						
							|  |  |  |       // ignore grunt and grunt-cli
 | 
					
						
							|  |  |  |       grunt.loadNpmTasks(key); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   function updateLocalConfig(update) { | 
					
						
							|  |  |  |     const environment = process.env.SIGNAL_ENV || 'production'; | 
					
						
							|  |  |  |     const configPath = `config/local-${environment}.json`; | 
					
						
							|  |  |  |     let localConfig; | 
					
						
							|  |  |  |     try { | 
					
						
							|  |  |  |       localConfig = grunt.file.readJSON(configPath); | 
					
						
							|  |  |  |     } catch (e) { | 
					
						
							|  |  |  |       //
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     localConfig = { | 
					
						
							|  |  |  |       ...localConfig, | 
					
						
							|  |  |  |       ...update, | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |     grunt.file.write(configPath, `${JSON.stringify(localConfig)}\n`); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   grunt.registerTask('getCommitHash', () => { | 
					
						
							|  |  |  |     grunt.task.requires('gitinfo'); | 
					
						
							|  |  |  |     const gitinfo = grunt.config.get('gitinfo'); | 
					
						
							|  |  |  |     const hash = gitinfo.local.branch.current.SHA; | 
					
						
							|  |  |  |     updateLocalConfig({ commitHash: hash }); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   grunt.registerTask('date', ['gitinfo']); | 
					
						
							|  |  |  |   grunt.registerTask('default', ['date', 'getCommitHash']); | 
					
						
							|  |  |  | }; |