| 
									
										
										
										
											2016-05-30 03:40:07 +02:00
										 |  |  | import "typings-global"; | 
					
						
							|  |  |  | import * as plugins from "./npmci.plugins"; | 
					
						
							| 
									
										
										
										
											2016-06-07 03:57:43 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export let bash = (commandArg:string,retryArg = 2,bareArg = false) => { | 
					
						
							|  |  |  |     let exitCode:number; | 
					
						
							|  |  |  |     let stdOut:string; | 
					
						
							|  |  |  |     let execResult; | 
					
						
							| 
									
										
										
										
											2016-06-05 14:55:08 +02:00
										 |  |  |     if(!process.env.NPMTS_TEST){ | 
					
						
							| 
									
										
										
										
											2016-06-05 20:51:13 +02:00
										 |  |  |         for (let i = 0; i <= retryArg; i++){ | 
					
						
							| 
									
										
										
										
											2016-06-07 03:57:43 +02:00
										 |  |  |             if(!bareArg){ | 
					
						
							|  |  |  |                 execResult = plugins.shelljs.exec( | 
					
						
							|  |  |  |                     "bash -c \"source /usr/local/nvm/nvm.sh &&" + | 
					
						
							|  |  |  |                     commandArg + | 
					
						
							|  |  |  |                     "\"" | 
					
						
							| 
									
										
										
										
											2016-06-07 04:55:08 +02:00
										 |  |  |                 ); | 
					
						
							| 
									
										
										
										
											2016-06-07 03:57:43 +02:00
										 |  |  |             } else { | 
					
						
							| 
									
										
										
										
											2016-06-07 05:36:37 +02:00
										 |  |  |                 execResult = plugins.shelljs.exec(commandArg); | 
					
						
							| 
									
										
										
										
											2016-06-07 03:57:43 +02:00
										 |  |  |             } | 
					
						
							|  |  |  |             exitCode = execResult.code; | 
					
						
							|  |  |  |             stdOut = execResult.stdout; | 
					
						
							| 
									
										
										
										
											2016-06-05 20:51:13 +02:00
										 |  |  |             if(exitCode !== 0 && i == retryArg){ | 
					
						
							|  |  |  |                 process.exit(1); | 
					
						
							|  |  |  |             } else if(exitCode == 0){ | 
					
						
							| 
									
										
										
										
											2016-06-05 21:11:30 +02:00
										 |  |  |                 i = retryArg + 1; // if everything works out ok retrials are not wanted
 | 
					
						
							|  |  |  |             } else { | 
					
						
							| 
									
										
										
										
											2016-06-06 23:57:23 +02:00
										 |  |  |                 plugins.beautylog.warn("Something went wrong! Exit Code: " + exitCode.toString()); | 
					
						
							| 
									
										
										
										
											2016-06-06 23:53:14 +02:00
										 |  |  |                 plugins.beautylog.info("Retry " + (i + 1).toString() + " of " +  retryArg.toString()); | 
					
						
							| 
									
										
										
										
											2016-06-05 20:51:13 +02:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2016-06-05 14:55:08 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         plugins.beautylog.log("ShellExec would be: " + commandArg.blue) | 
					
						
							| 
									
										
										
										
											2016-05-30 03:43:15 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-06-07 03:57:43 +02:00
										 |  |  |     return stdOut; | 
					
						
							| 
									
										
										
										
											2016-06-05 14:33:59 +02:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-05 21:11:30 +02:00
										 |  |  | export let bashBare = (commandArg,retryArg = 2) => { | 
					
						
							| 
									
										
										
										
											2016-06-07 03:57:43 +02:00
										 |  |  |     return bash(commandArg,retryArg,true); | 
					
						
							| 
									
										
										
										
											2016-05-30 03:40:07 +02:00
										 |  |  | } |