kopia lustrzana https://github.com/piku/piku
				
				
				
			First pass at ENV handling
							rodzic
							
								
									8cd68a297f
								
							
						
					
					
						commit
						0132e0e036
					
				
							
								
								
									
										36
									
								
								piku.py
								
								
								
								
							
							
						
						
									
										36
									
								
								piku.py
								
								
								
								
							|  | @ -67,6 +67,21 @@ def parse_procfile(filename): | |||
|         if 'web' in workers: | ||||
|             del(workers['web']) | ||||
|     return workers  | ||||
| 
 | ||||
| 
 | ||||
| def parse_settings(filename): | ||||
|     """Parses a settings file and returns a dict with environment variables""" | ||||
|     env = {} | ||||
|     if not exists(filename): | ||||
|         return None | ||||
|     with open(filename, 'r') as settings: | ||||
|         for line in settings: | ||||
|             try: | ||||
|                 k, v = map(lambda x: x.strip(), line.split("=", 1)) | ||||
|                 env[k] = v | ||||
|             except: | ||||
|                 echo("Warning: malformed setting '%s'" % line, fg='yellow') | ||||
|     return env | ||||
|      | ||||
| 
 | ||||
| def do_deploy(app): | ||||
|  | @ -110,12 +125,23 @@ def deploy_python(app, workers): | |||
|   | ||||
|  def create_workers(app, workers): | ||||
|     ordinal = 1 | ||||
|     env_file = join(APP_ROOT, 'ENV') | ||||
|     settings = join(ENV_ROOT, app) | ||||
|     env = { | ||||
|         'PATH': os.environ['PATH'], | ||||
|         'VIRTUAL_ENV': env_path, | ||||
|         'PORT': str(get_free_port()) | ||||
|     } | ||||
|     # Load environment variables shipped with repo (if any) | ||||
|     if exists(env_file): | ||||
|         env.update(parse_settings(env_file)) | ||||
|     # Override with custom settings (if any) | ||||
|     if exists(settings): | ||||
|         env.update(parse_settings(settings)) | ||||
|     # Create workers | ||||
|     for k, v in workers.iteritems(): | ||||
|         create_worker(app, k, v, { | ||||
|             'PATH': os.environ['PATH'], | ||||
|             'VIRTUAL_ENV': env_path, | ||||
|             'PORT': str(get_free_port()) | ||||
|         }, ordinal) | ||||
|         create_worker(app, k, v, env, ordinal) | ||||
|         ordinal += 1 | ||||
| 
 | ||||
| 
 | ||||
| def single_worker(app, kind, command, env, ordinal=1): | ||||
|  |  | |||
		Ładowanie…
	
		Reference in New Issue
	
	 Rui Carmo
						Rui Carmo