| 
									
										
										
										
											2016-06-03 02:56:20 +02:00
										 |  |  | import "typings-global"; | 
					
						
							|  |  |  | import * as plugins from "./npmci.plugins"; | 
					
						
							| 
									
										
										
										
											2016-06-05 23:24:11 +02:00
										 |  |  | import * as paths from "./npmci.paths"; | 
					
						
							| 
									
										
										
										
											2016-06-03 02:56:20 +02:00
										 |  |  | import {GitRepo} from "smartstring"; | 
					
						
							| 
									
										
										
										
											2016-06-05 02:17:55 +02:00
										 |  |  | import {Dockerfile} from "./npmci.build.docker" | 
					
						
							| 
									
										
										
										
											2016-06-03 02:56:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-10 08:07:04 +02:00
										 |  |  | export let repo:GitRepo; | 
					
						
							|  |  |  | if(process.env.CI_BUILD_REPO) repo = new GitRepo(process.env.CI_BUILD_REPO); | 
					
						
							| 
									
										
										
										
											2016-06-05 21:11:30 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export let buildStage:string = process.env.CI_BUILD_STAGE; | 
					
						
							| 
									
										
										
										
											2016-06-03 03:44:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-05 23:24:11 +02:00
										 |  |  | // handling config between commands
 | 
					
						
							| 
									
										
										
										
											2016-07-18 16:56:53 +02:00
										 |  |  | export let dockerRegistry:string; // will be set by npmci.prepare
 | 
					
						
							| 
									
										
										
										
											2016-07-18 18:39:04 +02:00
										 |  |  | export let setDockerRegistry = (dockerRegistryArg:string) => { | 
					
						
							|  |  |  |     dockerRegistry = dockerRegistryArg; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-06-05 05:16:14 +02:00
										 |  |  | export let dockerFilesBuilt:Dockerfile[] = []; | 
					
						
							|  |  |  | export let dockerFiles:Dockerfile[] = []; | 
					
						
							| 
									
										
										
										
											2016-06-26 04:40:58 +02:00
										 |  |  | export let config = { | 
					
						
							| 
									
										
										
										
											2016-06-26 05:21:24 +02:00
										 |  |  |     dockerRegistry: undefined, // this will be set later on store
 | 
					
						
							| 
									
										
										
										
											2016-06-26 04:40:58 +02:00
										 |  |  |     dockerFilesBuilt: dockerFilesBuilt, | 
					
						
							|  |  |  |     dockerFiles: dockerFiles, | 
					
						
							|  |  |  |     project: undefined | 
					
						
							|  |  |  | }; | 
					
						
							| 
									
										
										
										
											2016-06-05 02:17:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  | export let configStore = () => { | 
					
						
							| 
									
										
										
										
											2016-06-26 05:21:24 +02:00
										 |  |  |     config.dockerRegistry = dockerRegistry; | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     plugins.smartfile.memory.toFsSync( | 
					
						
							|  |  |  |         JSON.stringify(config), | 
					
						
							| 
									
										
										
										
											2016-06-25 03:19:29 +02:00
										 |  |  |         paths.NpmciPackageConfig | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     ); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  | let configLoad = () => { | 
					
						
							|  |  |  |     // internal config to transfer information in between npmci shell calls
 | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     try { | 
					
						
							| 
									
										
										
										
											2016-06-26 04:40:58 +02:00
										 |  |  |         plugins.lodash.assign(config,plugins.smartfile.fs.toObjectSync(paths.NpmciPackageConfig,"json")); | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     } | 
					
						
							|  |  |  |     catch(err){ | 
					
						
							|  |  |  |         configStore(); | 
					
						
							| 
									
										
										
										
											2016-06-07 12:36:00 +02:00
										 |  |  |         plugins.beautylog.log("config initialized!"); | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // project config
 | 
					
						
							|  |  |  |     try { | 
					
						
							|  |  |  |         if(!config.project){ | 
					
						
							| 
									
										
										
										
											2016-06-23 22:22:03 +02:00
										 |  |  |             config.project = plugins.smartfile.fs.toObjectSync(paths.NpmciProjectDir,"npmci.json"); | 
					
						
							| 
									
										
										
										
											2016-06-19 02:30:50 +02:00
										 |  |  |             plugins.beautylog.ok("project config found!"); | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     catch(err){ | 
					
						
							|  |  |  |         config.project = {}; | 
					
						
							|  |  |  |         plugins.beautylog.log("no project config found, so proceeding with default behaviour!"); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2016-06-05 23:24:11 +02:00
										 |  |  |     config.dockerRegistry ? dockerRegistry = config.dockerRegistry : void(0); | 
					
						
							|  |  |  |     config.dockerFilesBuilt ? dockerFilesBuilt = config.dockerFilesBuilt : void(0); | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2016-06-05 23:53:01 +02:00
										 |  |  | configLoad(); |