You cannot select more than 25 topics 
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long. 
		
		
		
		
		
			
	
	
		
			
				
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  fs  =  require ( 'fs' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  _  =  require ( 'lodash' ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								var  execSync  =  require ( 'child_process' ) . execSync ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								const  updateLocalConfig  =  ( )  =>  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  environment  =  process . env . SIGNAL _ENV  ||  'production' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  configPath  =  ` config/local- ${ environment } .json ` ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  localConfig ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  hash  =  '' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  try  { 
							 
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								    // this was tested on windows, linux and macOS builds through the CI and works fine, but might require to make git available in the PATH when building unofficial builds.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    // this is used to udpate the hash of the commit in the UI at the bottom of the settings screen, and in the about view
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  stdout  =  execSync ( 'git rev-parse HEAD' ) . toString ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    console . info ( '"git rev-parse HEAD" result: ' ,  stdout  &&  stdout . trim ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( ! _ . isEmpty ( stdout ) )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      hash  =  stdout . trim ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    var  rawdata  =  fs . readFileSync ( configPath ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    localConfig  =  JSON . parse ( rawdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  }  catch  ( e )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    console . error ( 'updateLocalConfig failed with' ,  e . message ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  localConfig  =  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ... localConfig , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    commitHash :  hash , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  var  toWrite  =  ` ${ JSON . stringify ( localConfig ) } \n ` ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  fs . writeFileSync ( configPath ,  toWrite ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								updateLocalConfig ( ) ;