| 
									
										
										
										
											2016-06-01 05:42:37 +02:00
										 |  |  | import "typings-global"; | 
					
						
							|  |  |  | import * as plugins from "./npmci.plugins"; | 
					
						
							| 
									
										
										
										
											2016-06-02 13:39:03 +02:00
										 |  |  | import {bash} from "./npmci.bash"; | 
					
						
							| 
									
										
										
										
											2016-06-01 05:42:37 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | let docker = function(){ | 
					
						
							| 
									
										
										
										
											2016-06-02 13:08:15 +02:00
										 |  |  |     let done = plugins.q.defer(); | 
					
						
							|  |  |  |     let dockerRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)/ | 
					
						
							| 
									
										
										
										
											2016-06-02 17:57:01 +02:00
										 |  |  |     if(!process.env.NPMCI_LOGIN_DOCKER){ | 
					
						
							|  |  |  |         plugins.beautylog.error("You have to specify Login Data to the Docker Registry"); | 
					
						
							|  |  |  |         process.exit(1); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     let dockerRegexResultArray = dockerRegex.exec(process.env.NPMCI_LOGIN_DOCKER); | 
					
						
							| 
									
										
										
										
											2016-06-02 13:08:15 +02:00
										 |  |  |     let username = dockerRegexResultArray[1]; | 
					
						
							|  |  |  |     let password = dockerRegexResultArray[2]; | 
					
						
							| 
									
										
										
										
											2016-06-02 13:39:03 +02:00
										 |  |  |     bash("docker login -u " + username + " -p " + password); | 
					
						
							| 
									
										
										
										
											2016-06-02 13:08:15 +02:00
										 |  |  |     done.resolve(); | 
					
						
							|  |  |  |     return done.promise; | 
					
						
							| 
									
										
										
										
											2016-06-01 05:42:37 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let npm = function(){ | 
					
						
							|  |  |  |     let done = plugins.q.defer(); | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     let npmrcPrefix:string = "//registry.npmjs.org/:_authToken="; | 
					
						
							| 
									
										
										
										
											2016-06-02 13:08:15 +02:00
										 |  |  |     let npmToken:string = process.env.NPMCI_TOKEN_NPM; | 
					
						
							| 
									
										
										
										
											2016-06-01 05:42:37 +02:00
										 |  |  |     let npmrcFileString = npmrcPrefix + npmToken; | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     if(npmToken){ | 
					
						
							|  |  |  |         plugins.beautylog.info("found access token"); | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         plugins.beautylog.error("no access token found! Exiting!"); | 
					
						
							|  |  |  |         process.exit(1); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     plugins.smartfile.memory.toFsSync(npmrcFileString,{fileName:".npmrc",filePath:"/root"}); | 
					
						
							|  |  |  |     done.resolve(); | 
					
						
							|  |  |  |     return done.promise; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export let prepare = function(serviceArg:string){ | 
					
						
							|  |  |  |     switch (serviceArg) { | 
					
						
							|  |  |  |         case "npm": | 
					
						
							|  |  |  |             return npm(); | 
					
						
							|  |  |  |         case "docker": | 
					
						
							|  |  |  |             return docker(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |