Compare commits
	
		
			26 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 5ede124f56 | |||
| e835a17fe4 | |||
| b86b090c07 | |||
| 97d2a8d1b7 | |||
| 38e54f13ff | |||
| a11233ddb6 | |||
| 7cfd5e4358 | |||
| 431371db5a | |||
| e784c02a40 | |||
| f156b58b95 | |||
| 40a00cb1b0 | |||
| 0f384a799a | |||
| d2f4512ca4 | |||
|  | ee7e7e2551 | ||
|  | 4c3d284186 | ||
|  | 5a472326ad | ||
| 5021ee099d | |||
| cd7363625d | |||
| 399168f5d0 | |||
| a272556ccd | |||
| 172b9f9b3f | |||
| 9eb3d1d06a | |||
| 4093675a9d | |||
| 53a2fb4c78 | |||
| 59ed6829e4 | |||
| 4e01b0c9b6 | 
| @@ -14,7 +14,7 @@ testLTS: | ||||
|   stage: test | ||||
|   script: | ||||
|     - npmci install lts | ||||
|     - npmci command npm install -g npmts | ||||
|     - npmci command npm install -g -q npmts | ||||
|     - npmci test lts | ||||
|   tags: | ||||
|     - docker | ||||
| @@ -23,7 +23,7 @@ testSTABLE: | ||||
|   stage: test | ||||
|   script: | ||||
|     - npmci install stable | ||||
|     - npmci command npm install -g npmts | ||||
|     - npmci command npm install -g -q npmts | ||||
|     - npmci test stable | ||||
|   tags: | ||||
|     - docker | ||||
| @@ -32,7 +32,7 @@ testLEGACY: | ||||
|   stage: test | ||||
|   script: | ||||
|     - npmci install legacy | ||||
|     - npmci command npm install -g npmts | ||||
|     - npmci command npm install -g -q npmts | ||||
|     - npmci test legacy | ||||
|   tags: | ||||
|     - docker | ||||
|   | ||||
							
								
								
									
										48
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								README.md
									
									
									
									
									
								
							| @@ -2,17 +2,17 @@ | ||||
| npmci is your friend when it comes to handling npm packages during CI builds. It is optimized for GitLab CI | ||||
|  | ||||
| ## Availabililty | ||||
| [](https://www.npmjs.com/package/npmci) | ||||
| [](https://gitlab.com/pushrocks/npmci) | ||||
| [](https://github.com/pushrocks/npmci) | ||||
| [](https://pushrocks.gitlab.io/npmci/docs) | ||||
| [](https://www.npmjs.com/package/npmci) | ||||
| [](https://gitlab.com/gitzone/npmci) | ||||
| [](https://github.com/gitzone/npmci) | ||||
| [](https://gitzone.gitlab.io/npmci/docs) | ||||
|  | ||||
| ## Status for master | ||||
| [](https://gitlab.com/pushrocks/npmci/commits/master) | ||||
| [](https://gitlab.com/pushrocks/npmci/commits/master) | ||||
| [](https://david-dm.org/pushrocks/npmci) | ||||
| [](https://www.bithound.io/github/pushrocks/npmci/master/dependencies/npm) | ||||
| [](https://www.bithound.io/github/pushrocks/npmci) | ||||
| [](https://gitlab.com/gitzone/npmci/commits/master) | ||||
| [](https://gitlab.com/gitzone/npmci/commits/master) | ||||
| [](https://david-dm.org/gitzonetools/npmci) | ||||
| [](https://www.bithound.io/github/gitzonetools/npmci/master/dependencies/npm) | ||||
| [](https://www.bithound.io/github/gitzonetools/npmci) | ||||
| [](https://nodejs.org/dist/latest-v6.x/docs/api/) | ||||
| [](https://nodejs.org/dist/latest-v6.x/docs/api/) | ||||
|  | ||||
| @@ -50,8 +50,8 @@ npmci prepare docker-gitlab # will authenticate docker for gitlab container regi | ||||
|  | ||||
| # build containers | ||||
| npmci build docker # will build containers | ||||
| ## all Dockerfiles named DOckerfile* are picked up. | ||||
| ## specify tags lake this Dockerfile_[tag] | ||||
| ## all Dockerfiles named Dockerfile* are picked up. | ||||
| ## specify tags like this Dockerfile_[tag] | ||||
| ## uploads all built images as [username]/[reponame]:[tag]_test to GitLab | ||||
| ## then test in next step with "npmci test docker" | ||||
|  | ||||
| @@ -63,4 +63,28 @@ npmci publish docker | ||||
| npmci trigger # will look for NPMCI_TRIGGER_1 to NPMCI_TRIGGER_100 in form domain|id|token|ref|name   | ||||
| ``` | ||||
|  | ||||
| [](https://push.rocks) | ||||
| ## Configuration | ||||
| npmci supports the use of npmextra. | ||||
|  | ||||
| To configure npmci create a `npmextra.json` file at the root of your project | ||||
|  | ||||
| ```json | ||||
| { | ||||
|     "npmci": { | ||||
|         "globalNpmTools": [ | ||||
|             "npm-check-updates", | ||||
|             "protractor", | ||||
|             "npmts", | ||||
|             "gitzone" | ||||
|         ] | ||||
|     } | ||||
| } | ||||
| ``` | ||||
|  | ||||
| **Available options** | ||||
|  | ||||
| setting | example | description | ||||
| --- | --- | --- | ||||
| globalNpmTools | "globalNpmTools": ["gitbook"] | Will look for the specified package names locally and (if not yet present) install them from npm.  | ||||
|  | ||||
| [](https://push.rocks) | ||||
|   | ||||
							
								
								
									
										42
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -21,59 +21,51 @@ exports.publish = npmci_publish_2.publish; | ||||
| let smartcli = new plugins.smartcli.Smartcli(); | ||||
| smartcli.addVersion(npmciInfo.version); | ||||
| // build | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'build' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('build') | ||||
|     .then((argv) => { | ||||
|     npmci_build_1.build(argv._[1]) | ||||
|         .then(NpmciEnv.configStore); | ||||
| }); | ||||
| // clean | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'clean' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('clean') | ||||
|     .then((argv) => { | ||||
|     npmci_clean_1.clean() | ||||
|         .then(NpmciEnv.configStore); | ||||
| }); | ||||
| // command | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'command' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('command') | ||||
|     .then((argv) => { | ||||
|     npmci_command_1.command() | ||||
|         .then(NpmciEnv.configStore); | ||||
| }); | ||||
| // install | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'install' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('install') | ||||
|     .then((argv) => { | ||||
|     npmci_install_1.install(argv._[1]) | ||||
|         .then(NpmciEnv.configStore); | ||||
| }); | ||||
| // prepare | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'prepare' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('prepare') | ||||
|     .then((argv) => { | ||||
|     npmci_prepare_1.prepare(argv._[1]) | ||||
|         .then(NpmciEnv.configStore); | ||||
| }); | ||||
| // publish | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'publish' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('publish') | ||||
|     .then((argv) => { | ||||
|     npmci_publish_1.publish(argv._[1]) | ||||
|         .then(NpmciEnv.configStore); | ||||
| }); | ||||
| // test | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'test' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('test') | ||||
|     .then((argv) => { | ||||
|     npmci_test_1.test(argv._[1]) | ||||
|         .then(NpmciEnv.configStore); | ||||
| }); | ||||
| // trigger | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'trigger' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('trigger') | ||||
|     .then((argv) => { | ||||
|     npmci_trigger_1.trigger(); | ||||
| }); | ||||
| smartcli.startParse(); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTBDO0FBQzFDLHVDQUFzQztBQUN0QyxJQUFJLFNBQVMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQzlFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUU1RCwrQ0FBbUM7QUFDbkMsK0NBQW1DO0FBQ25DLG1EQUF1QztBQUN2QyxtREFBdUM7QUFDdkMsbURBQXVDO0FBQ3ZDLG1EQUF1QztBQUN2Qyw2Q0FBaUM7QUFDakMsbURBQXVDO0FBQ3ZDLHdDQUF1QztBQUV2Qyw2Q0FBbUM7QUFBM0IsOEJBQUEsS0FBSyxDQUFBO0FBQ2IsaURBQXdDO0FBQWhDLGtDQUFBLE9BQU8sQ0FBQTtBQUNmLGlEQUF3QztBQUFoQyxrQ0FBQSxPQUFPLENBQUE7QUFFZixJQUFJLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUE7QUFDOUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7QUFFdEMsUUFBUTtBQUNSLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDaEIsV0FBVyxFQUFFLE9BQU87Q0FDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7SUFDVCxtQkFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQ25DLENBQUMsQ0FBQyxDQUFBO0FBRUYsUUFBUTtBQUNSLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDaEIsV0FBVyxFQUFFLE9BQU87Q0FDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUk7SUFDVCxtQkFBSyxFQUFFO1NBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUNuQyxDQUFDLENBQUMsQ0FBQTtBQUVGLFVBQVU7QUFDVixRQUFRLENBQUMsVUFBVSxDQUFDO0lBQ2hCLFdBQVcsRUFBRSxTQUFTO0NBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJO0lBQ1QsdUJBQU8sRUFBRTtTQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixPQUFPO0FBQ1AsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsTUFBTTtDQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULGlCQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDbkMsQ0FBQyxDQUFDLENBQUE7QUFFRixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQztJQUNoQixXQUFXLEVBQUUsU0FBUztDQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLEVBQUUsQ0FBQTtBQUNiLENBQUMsQ0FBQyxDQUFBO0FBRUYsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFBIn0= | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMkNBQTBDO0FBQzFDLHVDQUFzQztBQUN0QyxJQUFJLFNBQVMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0FBQzlFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUU1RCwrQ0FBcUM7QUFDckMsK0NBQXFDO0FBQ3JDLG1EQUF5QztBQUN6QyxtREFBeUM7QUFDekMsbURBQXlDO0FBQ3pDLG1EQUF5QztBQUN6Qyw2Q0FBbUM7QUFDbkMsbURBQXlDO0FBQ3pDLHdDQUF1QztBQUV2Qyw2Q0FBcUM7QUFBNUIsOEJBQUEsS0FBSyxDQUFBO0FBQ2QsaURBQTBDO0FBQWpDLGtDQUFBLE9BQU8sQ0FBQTtBQUNoQixpREFBMEM7QUFBakMsa0NBQUEsT0FBTyxDQUFBO0FBRWhCLElBQUksUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUM5QyxRQUFRLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUV0QyxRQUFRO0FBQ1IsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7S0FDekIsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULG1CQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUUsQ0FBQztTQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDL0IsQ0FBQyxDQUFDLENBQUE7QUFFSixRQUFRO0FBQ1IsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7S0FDekIsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULG1CQUFLLEVBQUU7U0FDSixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQy9CLENBQUMsQ0FBQyxDQUFBO0FBRUosVUFBVTtBQUNWLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0tBQzNCLElBQUksQ0FBQyxDQUFDLElBQUk7SUFDVCx1QkFBTyxFQUFFO1NBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUMvQixDQUFDLENBQUMsQ0FBQTtBQUVKLFVBQVU7QUFDVixRQUFRLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztLQUMzQixJQUFJLENBQUMsQ0FBQyxJQUFJO0lBQ1QsdUJBQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBRSxDQUFDO1NBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7QUFDL0IsQ0FBQyxDQUFDLENBQUE7QUFFSixVQUFVO0FBQ1YsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7S0FDM0IsSUFBSSxDQUFDLENBQUMsSUFBSTtJQUNULHVCQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUUsQ0FBQztTQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0FBQy9CLENBQUMsQ0FBQyxDQUFBO0FBRUosVUFBVTtBQUNWLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO0tBQzNCLElBQUksQ0FBQyxDQUFDLElBQUk7SUFDVCx1QkFBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFFLENBQUM7U0FDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUMvQixDQUFDLENBQUMsQ0FBQTtBQUVKLE9BQU87QUFDUCxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztLQUN4QixJQUFJLENBQUMsQ0FBQyxJQUFJO0lBQ1QsaUJBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBRSxDQUFDO1NBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtBQUMvQixDQUFDLENBQUMsQ0FBQTtBQUVKLFVBQVU7QUFDVixRQUFRLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQztLQUMzQixJQUFJLENBQUMsQ0FBQyxJQUFJO0lBQ1QsdUJBQU8sRUFBRSxDQUFBO0FBQ1gsQ0FBQyxDQUFDLENBQUE7QUFFSixRQUFRLENBQUMsVUFBVSxFQUFFLENBQUEifQ== | ||||
							
								
								
									
										2
									
								
								dist/npmci.bash.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/npmci.bash.d.ts
									
									
									
									
										vendored
									
									
								
							| @@ -1,6 +1,8 @@ | ||||
| export declare let nvmAvailable: boolean; | ||||
| /** | ||||
|  * bash() allows using bash with nvm in path | ||||
|  * @param commandArg - The command to execute | ||||
|  * @param retryArg - The retryArg: 0 to any positive number will retry, -1 will always succeed, -2 will return undefined | ||||
|  */ | ||||
| export declare let bash: (commandArg: string, retryArg?: number, bareArg?: boolean) => string; | ||||
| /** | ||||
|   | ||||
							
								
								
									
										20
									
								
								dist/npmci.bash.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								dist/npmci.bash.js
									
									
									
									
										vendored
									
									
								
							| @@ -3,11 +3,12 @@ const plugins = require("./npmci.plugins"); | ||||
| let nvmSourceString = ''; | ||||
| exports.nvmAvailable = false; | ||||
| let checkNvm = () => { | ||||
|     if (plugins.shelljs.exec(`bash -c "source /usr/local/nvm/nvm.sh"`, { silent: true }).code === 0) { | ||||
|     let localExec = plugins.shelljs.exec; | ||||
|     if (localExec(`bash -c "source /usr/local/nvm/nvm.sh"`, { silent: true }).code === 0) { | ||||
|         nvmSourceString = `source /usr/local/nvm/nvm.sh && `; | ||||
|         exports.nvmAvailable = true; | ||||
|     } | ||||
|     else if (plugins.shelljs.exec(`bash -c "source ~/.nvm/nvm.sh"`, { silent: true }).code === 0) { | ||||
|     else if (localExec(`bash -c "source ~/.nvm/nvm.sh"`, { silent: true }).code === 0) { | ||||
|         nvmSourceString = `source ~/.nvm/nvm.sh && `; | ||||
|         exports.nvmAvailable = true; | ||||
|     } | ||||
| @@ -16,11 +17,18 @@ let checkNvm = () => { | ||||
| checkNvm(); | ||||
| /** | ||||
|  * bash() allows using bash with nvm in path | ||||
|  * @param commandArg - The command to execute | ||||
|  * @param retryArg - The retryArg: 0 to any positive number will retry, -1 will always succeed, -2 will return undefined | ||||
|  */ | ||||
| exports.bash = (commandArg, retryArg = 2, bareArg = false) => { | ||||
|     let exitCode; | ||||
|     let stdOut; | ||||
|     let execResult; | ||||
|     let failOnError = true; | ||||
|     if (retryArg === -1) { | ||||
|         failOnError = false; | ||||
|         retryArg = 0; | ||||
|     } | ||||
|     if (!process.env.NPMTS_TEST) { | ||||
|         for (let i = 0; i <= retryArg; i++) { | ||||
|             if (!bareArg) { | ||||
| @@ -33,9 +41,11 @@ exports.bash = (commandArg, retryArg = 2, bareArg = false) => { | ||||
|             stdOut = execResult.stdout; | ||||
|             // determine how bash reacts to error and success | ||||
|             if (exitCode !== 0 && i === retryArg) { | ||||
|                 process.exit(1); | ||||
|                 if (failOnError) { | ||||
|                     process.exit(1); | ||||
|                 } | ||||
|             } | ||||
|             else if (exitCode === 0 || retryArg === -1) { | ||||
|             else if (exitCode === 0) { | ||||
|                 i = retryArg + 1; // retry +1 breaks for loop, if everything works out ok retrials are not wanted | ||||
|             } | ||||
|             else { | ||||
| @@ -61,4 +71,4 @@ exports.bashBare = (commandArg, retryArg = 2) => { | ||||
| exports.bashNoError = (commandArg) => { | ||||
|     return exports.bash(commandArg, -1); | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUUxQyxJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUE7QUFDckIsUUFBQSxZQUFZLEdBQVksS0FBSyxDQUFBO0FBQ3hDLElBQUksUUFBUSxHQUFHO0lBQ1gsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUMsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRixlQUFlLEdBQUcsa0NBQWtDLENBQUE7UUFDcEQsb0JBQVksR0FBRyxJQUFJLENBQUE7SUFDdkIsQ0FBQztJQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFGLGVBQWUsR0FBRywwQkFBMEIsQ0FBQTtRQUM1QyxvQkFBWSxHQUFHLElBQUksQ0FBQTtJQUN2QixDQUFDO0lBQUEsQ0FBQztBQUNOLENBQUMsQ0FBQTtBQUNELFFBQVEsRUFBRSxDQUFBO0FBRVY7O0dBRUc7QUFDUSxRQUFBLElBQUksR0FBRyxDQUFDLFVBQWtCLEVBQUUsV0FBbUIsQ0FBQyxFQUFFLFVBQW1CLEtBQUs7SUFDakYsSUFBSSxRQUFnQixDQUFBO0lBQ3BCLElBQUksTUFBYyxDQUFBO0lBQ2xCLElBQUksVUFBVSxDQUFBO0lBQ2QsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNqQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1gsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUM3QixZQUFZLGVBQWUsSUFBSSxVQUFVLEdBQUcsQ0FDL0MsQ0FBQTtZQUNMLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7WUFDakQsQ0FBQztZQUNELFFBQVEsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFBO1lBQzFCLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFBO1lBRTFCLGlEQUFpRDtZQUNqRCxFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUNuQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ25CLENBQUM7WUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxLQUFLLENBQUMsSUFBSSxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQSxDQUFDLCtFQUErRTtZQUNwRyxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7Z0JBQ2pGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDeEYsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsUUFBUSxHQUFHLENBQUMsVUFBa0IsRUFBRSxXQUFtQixDQUFDO0lBQzNELE1BQU0sQ0FBQyxZQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQTtBQUMzQyxDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNRLFFBQUEsV0FBVyxHQUFHLENBQUMsVUFBa0I7SUFDeEMsTUFBTSxDQUFDLFlBQUksQ0FBQyxVQUFVLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM5QixDQUFDLENBQUEifQ== | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuYmFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmJhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUUxQyxJQUFJLGVBQWUsR0FBVyxFQUFFLENBQUE7QUFDckIsUUFBQSxZQUFZLEdBQVksS0FBSyxDQUFBO0FBQ3hDLElBQUksUUFBUSxHQUFHO0lBQ2IsSUFBSSxTQUFTLEdBQVEsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUE7SUFDekMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLHdDQUF3QyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckYsZUFBZSxHQUFHLGtDQUFrQyxDQUFBO1FBQ3BELG9CQUFZLEdBQUcsSUFBSSxDQUFBO0lBQ3JCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEYsZUFBZSxHQUFHLDBCQUEwQixDQUFBO1FBQzVDLG9CQUFZLEdBQUcsSUFBSSxDQUFBO0lBQ3JCLENBQUM7SUFBQSxDQUFDO0FBQ0osQ0FBQyxDQUFBO0FBQ0QsUUFBUSxFQUFFLENBQUE7QUFFVjs7OztHQUlHO0FBQ1EsUUFBQSxJQUFJLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFdBQW1CLENBQUMsRUFBRSxVQUFtQixLQUFLO0lBQ25GLElBQUksUUFBZ0IsQ0FBQTtJQUNwQixJQUFJLE1BQWMsQ0FBQTtJQUNsQixJQUFJLFVBQVUsQ0FBQTtJQUNkLElBQUksV0FBVyxHQUFZLElBQUksQ0FBQTtJQUMvQixFQUFFLENBQUMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLFdBQVcsR0FBRyxLQUFLLENBQUE7UUFDbkIsUUFBUSxHQUFHLENBQUMsQ0FBQTtJQUNkLENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM1QixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixVQUFVLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQy9CLFlBQVksZUFBZSxJQUFJLFVBQVUsR0FBRyxDQUM3QyxDQUFBO1lBQ0gsQ0FBQztZQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNOLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUMvQyxDQUFDO1lBQ0QsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUE7WUFDMUIsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUE7WUFFMUIsaURBQWlEO1lBQ2pELEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7b0JBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ2pCLENBQUM7WUFDSCxDQUFDO1lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQSxDQUFDLCtFQUErRTtZQUNsRyxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7Z0JBQ2pGLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDdEYsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDTixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxVQUFVLENBQUMsQ0FBQTtJQUM1RCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQTtBQUNmLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ1EsUUFBQSxRQUFRLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFdBQW1CLENBQUM7SUFDN0QsTUFBTSxDQUFDLFlBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0FBQ3pDLENBQUMsQ0FBQTtBQUVEOztHQUVHO0FBQ1EsUUFBQSxXQUFXLEdBQUcsQ0FBQyxVQUFrQjtJQUMxQyxNQUFNLENBQUMsWUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQzdCLENBQUMsQ0FBQSJ9 | ||||
							
								
								
									
										2
									
								
								dist/npmci.env.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/npmci.env.js
									
									
									
									
										vendored
									
									
								
							| @@ -45,4 +45,4 @@ let configLoad = () => { | ||||
|     exports.config.dockerFilesBuilt ? exports.dockerFilesBuilt = exports.config.dockerFilesBuilt : void (0); | ||||
| }; | ||||
| configLoad(); | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyQ0FBMEM7QUFDMUMsdUNBQXNDO0FBQ3RDLDZDQUFtQztBQUluQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUFDLFlBQUksR0FBRyxJQUFJLHFCQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUVqRSxRQUFBLFVBQVUsR0FBVyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQTtBQUkvQyxRQUFBLGlCQUFpQixHQUFHLENBQUMsaUJBQXlCO0lBQ3JELHNCQUFjLEdBQUcsaUJBQWlCLENBQUE7QUFDdEMsQ0FBQyxDQUFBO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBaUIsRUFBRSxDQUFBO0FBQ25DLFFBQUEsV0FBVyxHQUFpQixFQUFFLENBQUE7QUFDOUIsUUFBQSxNQUFNLEdBQUc7SUFDaEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsZ0JBQWdCLEVBQUUsd0JBQWdCO0lBQ2xDLFdBQVcsRUFBRSxtQkFBVztJQUN4QixPQUFPLEVBQUUsU0FBUztDQUNyQixDQUFBO0FBRVUsUUFBQSxXQUFXLEdBQUc7SUFDckIsY0FBTSxDQUFDLGNBQWMsR0FBRyxzQkFBYyxDQUFBO0lBQ3RDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFNLENBQUMsRUFDdEIsS0FBSyxDQUFDLGtCQUFrQixDQUMzQixDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDYix1RUFBdUU7SUFDdkUsSUFBSSxDQUFDO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBTSxFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNwRyxDQUNBO0lBQUEsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNULG1CQUFXLEVBQUUsQ0FBQTtRQUNiLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixJQUFJLENBQUM7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLGNBQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUMsWUFBWSxDQUFDLENBQUE7WUFDdEYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUNqRCxDQUFDO1FBQUEsQ0FBQztJQUNOLENBQ0E7SUFBQSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ1QsY0FBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0VBQWdFLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRUQsY0FBTSxDQUFDLGNBQWMsR0FBRyxzQkFBYyxHQUFHLGNBQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hFLGNBQU0sQ0FBQyxnQkFBZ0IsR0FBRyx3QkFBZ0IsR0FBRyxjQUFNLENBQUMsZ0JBQWdCLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2xGLENBQUMsQ0FBQTtBQUNELFVBQVUsRUFBRSxDQUFBIn0= | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvbnBtY2kuZW52LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwyQ0FBMEM7QUFDMUMsdUNBQXNDO0FBQ3RDLDZDQUFtQztBQUluQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUFDLFlBQUksR0FBRyxJQUFJLHFCQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtBQUVqRSxRQUFBLFVBQVUsR0FBVyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQTtBQUkvQyxRQUFBLGlCQUFpQixHQUFHLENBQUMsaUJBQXlCO0lBQ3JELHNCQUFjLEdBQUcsaUJBQWlCLENBQUE7QUFDdEMsQ0FBQyxDQUFBO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBaUIsRUFBRSxDQUFBO0FBQ25DLFFBQUEsV0FBVyxHQUFpQixFQUFFLENBQUE7QUFDOUIsUUFBQSxNQUFNLEdBQUc7SUFDaEIsY0FBYyxFQUFFLFNBQVM7SUFDekIsZ0JBQWdCLEVBQUUsd0JBQWdCO0lBQ2xDLFdBQVcsRUFBRSxtQkFBVztJQUN4QixPQUFPLEVBQUUsU0FBUztDQUNyQixDQUFBO0FBRVUsUUFBQSxXQUFXLEdBQUc7SUFDckIsY0FBTSxDQUFDLGNBQWMsR0FBRyxzQkFBYyxDQUFBO0lBQ3RDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFNLENBQUMsRUFDdEIsS0FBSyxDQUFDLGtCQUFrQixDQUMzQixDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsSUFBSSxVQUFVLEdBQUc7SUFDYix1RUFBdUU7SUFDdkUsSUFBSSxDQUFDO1FBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBTSxFQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUNwRyxDQUFDO0lBQ0QsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNULG1CQUFXLEVBQUUsQ0FBQTtRQUNiLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDaEQsQ0FBQztJQUVELGlCQUFpQjtJQUNqQixJQUFJLENBQUM7UUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLGNBQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUMsWUFBWSxDQUFDLENBQUE7WUFDdEYsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUNqRCxDQUFDO1FBQUEsQ0FBQztJQUNOLENBQUM7SUFDRCxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ1QsY0FBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUE7UUFDbkIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZ0VBQWdFLENBQUMsQ0FBQTtJQUMzRixDQUFDO0lBRUQsY0FBTSxDQUFDLGNBQWMsR0FBRyxzQkFBYyxHQUFHLGNBQU0sQ0FBQyxjQUFjLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hFLGNBQU0sQ0FBQyxnQkFBZ0IsR0FBRyx3QkFBZ0IsR0FBRyxjQUFNLENBQUMsZ0JBQWdCLEdBQUcsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ2xGLENBQUMsQ0FBQTtBQUNELFVBQVUsRUFBRSxDQUFBIn0= | ||||
							
								
								
									
										6
									
								
								dist/npmci.install.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/npmci.install.js
									
									
									
									
										vendored
									
									
								
							| @@ -33,10 +33,11 @@ exports.install = (versionArg) => { | ||||
|     // lets look for further config | ||||
|     configModule.getConfig() | ||||
|         .then(configArg => { | ||||
|         plugins.beautylog.log('Now checking for needed global npm tools...'); | ||||
|         for (let npmTool of configArg.globalNpmTools) { | ||||
|             plugins.beautylog.info(`Checking for global "${npmTool}"`); | ||||
|             let whichOutput = npmci_bash_1.bashNoError(`which ${npmTool}`); | ||||
|             let toolAvailable = !(/not found/.test(whichOutput)); | ||||
|             let toolAvailable = !((/not\sfound/.test(whichOutput)) || whichOutput === ''); | ||||
|             if (toolAvailable) { | ||||
|                 plugins.beautylog.log(`Tool ${npmTool} is available`); | ||||
|             } | ||||
| @@ -45,8 +46,9 @@ exports.install = (versionArg) => { | ||||
|                 npmci_bash_1.bash(`npm install ${npmTool} -q -g`); | ||||
|             } | ||||
|         } | ||||
|         plugins.beautylog.success('all global npm tools specified in npmextra.json are now available!'); | ||||
|         done.resolve(); | ||||
|     }); | ||||
|     return done.promise; | ||||
| }; | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUMxQywrQ0FBOEM7QUFDOUMsNkNBQWdEO0FBQ2hELDZDQUEyQztBQUNoQyxRQUFBLE9BQU8sR0FBRyxDQUFDLFVBQVU7SUFDNUIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxJQUFJLE9BQWUsQ0FBQTtJQUNuQixFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMxQixPQUFPLEdBQUcsUUFBUSxDQUFBO0lBQ3RCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUIsT0FBTyxHQUFHLEdBQUcsQ0FBQTtJQUNqQixDQUFDO0lBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxHQUFHLENBQUE7SUFDakIsQ0FBQztJQUFDLElBQUksQ0FBQyxDQUFDO1FBQ0osT0FBTyxHQUFHLFVBQVUsQ0FBQTtJQUN4QixDQUFDO0lBQUEsQ0FBQztJQUNGLEVBQUUsQ0FBQyxDQUFDLHlCQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2YsaUJBQUksQ0FBQyxlQUFlLE9BQU8seUJBQXlCLE9BQU8sRUFBRSxDQUFDLENBQUE7UUFDOUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sMEJBQTBCLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBQUMsSUFBSSxDQUFDLENBQUM7UUFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1REFBdUQsQ0FBQyxDQUFBO0lBQ25GLENBQUM7SUFBQSxDQUFDO0lBQ0YsaUJBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNmLGlCQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFZCwrQkFBK0I7SUFDL0IsWUFBWSxDQUFDLFNBQVMsRUFBRTtTQUNuQixJQUFJLENBQUMsU0FBUztRQUNYLEdBQUcsQ0FBQyxDQUFDLElBQUksT0FBTyxJQUFJLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixPQUFPLEdBQUcsQ0FBQyxDQUFBO1lBQzFELElBQUksV0FBVyxHQUFHLHdCQUFXLENBQUMsU0FBUyxPQUFPLEVBQUUsQ0FBQyxDQUFBO1lBQ2pELElBQUksYUFBYSxHQUFZLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7WUFDN0QsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztnQkFDaEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxPQUFPLGVBQWUsQ0FBQyxDQUFBO1lBQ3pELENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsT0FBTyxXQUFXLENBQUMsQ0FBQTtnQkFDakUsaUJBQUksQ0FBQyxlQUFlLE9BQU8sUUFBUSxDQUFDLENBQUE7WUFDeEMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDbEIsQ0FBQyxDQUFDLENBQUE7SUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUN2QixDQUFDLENBQUEifQ== | ||||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtY2kuaW5zdGFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL25wbWNpLmluc3RhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJDQUEwQztBQUMxQywrQ0FBOEM7QUFDOUMsNkNBQWdEO0FBQ2hELDZDQUEyQztBQUNoQyxRQUFBLE9BQU8sR0FBRyxDQUFDLFVBQVU7SUFDOUIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtJQUM1QixPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsVUFBVSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxJQUFJLE9BQWUsQ0FBQTtJQUNuQixFQUFFLENBQUMsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM1QixPQUFPLEdBQUcsUUFBUSxDQUFBO0lBQ3BCLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDaEMsT0FBTyxHQUFHLEdBQUcsQ0FBQTtJQUNmLENBQUM7SUFBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkMsT0FBTyxHQUFHLEdBQUcsQ0FBQTtJQUNmLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE9BQU8sR0FBRyxVQUFVLENBQUE7SUFDdEIsQ0FBQztJQUFBLENBQUM7SUFDRixFQUFFLENBQUMsQ0FBQyx5QkFBWSxDQUFDLENBQUMsQ0FBQztRQUNqQixpQkFBSSxDQUFDLGVBQWUsT0FBTyx5QkFBeUIsT0FBTyxFQUFFLENBQUMsQ0FBQTtRQUM5RCxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsT0FBTywwQkFBMEIsQ0FBQyxDQUFBO0lBQzlFLENBQUM7SUFBQyxJQUFJLENBQUMsQ0FBQztRQUNOLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLHVEQUF1RCxDQUFDLENBQUE7SUFDakYsQ0FBQztJQUFBLENBQUM7SUFDRixpQkFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2YsaUJBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUNkLCtCQUErQjtJQUMvQixZQUFZLENBQUMsU0FBUyxFQUFFO1NBQ3JCLElBQUksQ0FBQyxTQUFTO1FBQ2IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQTtRQUNwRSxHQUFHLENBQUMsQ0FBQyxJQUFJLE9BQU8sSUFBSSxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUM3QyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsT0FBTyxHQUFHLENBQUMsQ0FBQTtZQUMxRCxJQUFJLFdBQVcsR0FBRyx3QkFBVyxDQUFDLFNBQVMsT0FBTyxFQUFFLENBQUMsQ0FBQTtZQUNqRCxJQUFJLGFBQWEsR0FBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksV0FBVyxLQUFLLEVBQUUsQ0FBQyxDQUFBO1lBQ3RGLEVBQUUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsT0FBTyxlQUFlLENBQUMsQ0FBQTtZQUN2RCxDQUFDO1lBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ04sT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLE9BQU8sV0FBVyxDQUFDLENBQUE7Z0JBQ2pFLGlCQUFJLENBQUMsZUFBZSxPQUFPLFFBQVEsQ0FBQyxDQUFBO1lBQ3RDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0VBQW9FLENBQUMsQ0FBQTtRQUMvRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7SUFDaEIsQ0FBQyxDQUFDLENBQUE7SUFDSixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtBQUNyQixDQUFDLENBQUEifQ== | ||||
							
								
								
									
										36
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								package.json
									
									
									
									
									
								
							| @@ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "npmci", | ||||
|   "version": "2.3.31", | ||||
|   "version": "2.3.42", | ||||
|   "description": "", | ||||
|   "main": "dist/index.js", | ||||
|   "typings": "dist/index.d.ts", | ||||
| @@ -13,43 +13,43 @@ | ||||
|   }, | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "git+ssh://git@github.com/pushrocks/npmci.git" | ||||
|     "url": "git+ssh://git@gitlab.com/gitzone/npmci.git" | ||||
|   }, | ||||
|   "author": "Lossless GmbH", | ||||
|   "license": "MIT", | ||||
|   "bugs": { | ||||
|     "url": "https://gitlab.com/pushrocks/npmci/issues" | ||||
|     "url": "https://gitlab.com/gitzone/npmci/issues" | ||||
|   }, | ||||
|   "homepage": "https://gitlab.com/pushrocks/npmci#README", | ||||
|   "homepage": "https://gitlab.com/gitzone/npmci#README", | ||||
|   "devDependencies": { | ||||
|     "@types/should": "^8.1.30", | ||||
|     "npmts-g": "^5.2.8", | ||||
|     "should": "^11.1.1", | ||||
|     "npmts-g": "^6.0.0", | ||||
|     "should": "^11.2.0", | ||||
|     "typings-test": "^1.0.3" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@types/lodash": "^4.14.40", | ||||
|     "@types/node": "^6.0.51", | ||||
|     "@types/lodash": "^4.14.52", | ||||
|     "@types/node": "^7.0.5", | ||||
|     "@types/q": "0.x.x", | ||||
|     "@types/request": "0.x.x", | ||||
|     "@types/shelljs": "^0.3.33", | ||||
|     "@types/shelljs": "^0.7.0", | ||||
|     "@types/through2": "^2.0.32", | ||||
|     "beautylog": "^6.0.0", | ||||
|     "beautylog": "^6.1.1", | ||||
|     "gulp": "^3.9.1", | ||||
|     "gulp-function": "^2.2.0", | ||||
|     "lodash": "^4.17.2", | ||||
|     "gulp-function": "^2.2.3", | ||||
|     "lodash": "^4.17.4", | ||||
|     "npmextra": "^2.0.3", | ||||
|     "projectinfo": "^1.0.4", | ||||
|     "projectinfo": "^3.0.1", | ||||
|     "q": "^1.4.1", | ||||
|     "request": "^2.79.0", | ||||
|     "shelljs": "^0.7.5", | ||||
|     "smartcli": "^1.0.15", | ||||
|     "smartfile": "^4.1.0", | ||||
|     "shelljs": "^0.7.6", | ||||
|     "smartcli": "^2.0.1", | ||||
|     "smartfile": "^4.1.6", | ||||
|     "smartparam": "^0.1.1", | ||||
|     "smartsocket": "^1.1.7", | ||||
|     "smartssh": "^1.2.1", | ||||
|     "smartstring": "^2.0.22", | ||||
|     "through2": "^2.0.1", | ||||
|     "smartstring": "^2.0.24", | ||||
|     "through2": "^2.0.3", | ||||
|     "typings-global": "^1.0.14" | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										102
									
								
								ts/index.ts
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								ts/index.ts
									
									
									
									
									
								
							| @@ -3,84 +3,76 @@ import * as paths from './npmci.paths' | ||||
| let npmciInfo = new plugins.projectinfo.ProjectinfoNpm(paths.NpmciPackageRoot) | ||||
| plugins.beautylog.log('npmci version: ' + npmciInfo.version) | ||||
|  | ||||
| import {build} from './npmci.build' | ||||
| import {clean} from './npmci.clean' | ||||
| import {command} from './npmci.command' | ||||
| import {install} from './npmci.install' | ||||
| import {publish} from './npmci.publish' | ||||
| import {prepare} from './npmci.prepare' | ||||
| import {test} from './npmci.test' | ||||
| import {trigger} from './npmci.trigger' | ||||
| import { build } from './npmci.build' | ||||
| import { clean } from './npmci.clean' | ||||
| import { command } from './npmci.command' | ||||
| import { install } from './npmci.install' | ||||
| import { publish } from './npmci.publish' | ||||
| import { prepare } from './npmci.prepare' | ||||
| import { test } from './npmci.test' | ||||
| import { trigger } from './npmci.trigger' | ||||
| import * as NpmciEnv from './npmci.env' | ||||
|  | ||||
| export {build} from './npmci.build' | ||||
| export {install} from './npmci.install'; | ||||
| export {publish} from './npmci.publish'; | ||||
| export { build } from './npmci.build' | ||||
| export { install } from './npmci.install'; | ||||
| export { publish } from './npmci.publish'; | ||||
|  | ||||
| let smartcli = new plugins.smartcli.Smartcli() | ||||
| smartcli.addVersion(npmciInfo.version) | ||||
|  | ||||
| // build | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'build' | ||||
| }).then((argv) => { | ||||
|     build(argv._[1]) | ||||
|         .then(NpmciEnv.configStore) | ||||
| }) | ||||
| smartcli.addCommand('build') | ||||
|   .then((argv) => { | ||||
|     build(argv._[ 1 ]) | ||||
|       .then(NpmciEnv.configStore) | ||||
|   }) | ||||
|  | ||||
| // clean | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'clean' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('clean') | ||||
|   .then((argv) => { | ||||
|     clean() | ||||
|         .then(NpmciEnv.configStore) | ||||
| }) | ||||
|       .then(NpmciEnv.configStore) | ||||
|   }) | ||||
|  | ||||
| // command | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'command' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('command') | ||||
|   .then((argv) => { | ||||
|     command() | ||||
|         .then(NpmciEnv.configStore) | ||||
| }) | ||||
|       .then(NpmciEnv.configStore) | ||||
|   }) | ||||
|  | ||||
| // install | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'install' | ||||
| }).then((argv) => { | ||||
|     install(argv._[1]) | ||||
|         .then(NpmciEnv.configStore) | ||||
| }) | ||||
| smartcli.addCommand('install') | ||||
|   .then((argv) => { | ||||
|     install(argv._[ 1 ]) | ||||
|       .then(NpmciEnv.configStore) | ||||
|   }) | ||||
|  | ||||
| // prepare | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'prepare' | ||||
| }).then((argv) => { | ||||
|     prepare(argv._[1]) | ||||
|         .then(NpmciEnv.configStore) | ||||
| }) | ||||
| smartcli.addCommand('prepare') | ||||
|   .then((argv) => { | ||||
|     prepare(argv._[ 1 ]) | ||||
|       .then(NpmciEnv.configStore) | ||||
|   }) | ||||
|  | ||||
| // publish | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'publish' | ||||
| }).then((argv) => { | ||||
|     publish(argv._[1]) | ||||
|         .then(NpmciEnv.configStore) | ||||
| }) | ||||
| smartcli.addCommand('publish') | ||||
|   .then((argv) => { | ||||
|     publish(argv._[ 1 ]) | ||||
|       .then(NpmciEnv.configStore) | ||||
|   }) | ||||
|  | ||||
| // test | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'test' | ||||
| }).then((argv) => { | ||||
|     test(argv._[1]) | ||||
|         .then(NpmciEnv.configStore) | ||||
| }) | ||||
| smartcli.addCommand('test') | ||||
|   .then((argv) => { | ||||
|     test(argv._[ 1 ]) | ||||
|       .then(NpmciEnv.configStore) | ||||
|   }) | ||||
|  | ||||
| // trigger | ||||
| smartcli.addCommand({ | ||||
|     commandName: 'trigger' | ||||
| }).then((argv) => { | ||||
| smartcli.addCommand('trigger') | ||||
|   .then((argv) => { | ||||
|     trigger() | ||||
| }) | ||||
|   }) | ||||
|  | ||||
| smartcli.startParse() | ||||
|   | ||||
| @@ -3,61 +3,71 @@ import * as plugins from './npmci.plugins' | ||||
| let nvmSourceString: string = '' | ||||
| export let nvmAvailable: boolean = false | ||||
| let checkNvm = () => { | ||||
|     if (plugins.shelljs.exec(`bash -c "source /usr/local/nvm/nvm.sh"`,{silent: true}).code === 0) { | ||||
|         nvmSourceString = `source /usr/local/nvm/nvm.sh && ` | ||||
|         nvmAvailable = true | ||||
|     } else if (plugins.shelljs.exec(`bash -c "source ~/.nvm/nvm.sh"`,{silent: true}).code === 0) { | ||||
|         nvmSourceString = `source ~/.nvm/nvm.sh && ` | ||||
|         nvmAvailable = true | ||||
|     }; | ||||
|   let localExec: any = plugins.shelljs.exec | ||||
|   if (localExec(`bash -c "source /usr/local/nvm/nvm.sh"`, { silent: true }).code === 0) { | ||||
|     nvmSourceString = `source /usr/local/nvm/nvm.sh && ` | ||||
|     nvmAvailable = true | ||||
|   } else if (localExec(`bash -c "source ~/.nvm/nvm.sh"`, { silent: true }).code === 0) { | ||||
|     nvmSourceString = `source ~/.nvm/nvm.sh && ` | ||||
|     nvmAvailable = true | ||||
|   }; | ||||
| } | ||||
| checkNvm() | ||||
|  | ||||
| /** | ||||
|  * bash() allows using bash with nvm in path | ||||
|  * @param commandArg - The command to execute | ||||
|  * @param retryArg - The retryArg: 0 to any positive number will retry, -1 will always succeed, -2 will return undefined | ||||
|  */ | ||||
| export let bash = (commandArg: string, retryArg: number = 2, bareArg: boolean = false): string => { | ||||
|     let exitCode: number | ||||
|     let stdOut: string | ||||
|     let execResult | ||||
|     if (!process.env.NPMTS_TEST) { // NPMTS_TEST is used during testing | ||||
|         for (let i = 0; i <= retryArg; i++) { | ||||
|             if (!bareArg) { | ||||
|                 execResult = plugins.shelljs.exec( | ||||
|                     `bash -c "${nvmSourceString} ${commandArg}"` | ||||
|                 ) | ||||
|             } else { | ||||
|                 execResult = plugins.shelljs.exec(commandArg) | ||||
|             } | ||||
|             exitCode = execResult.code | ||||
|             stdOut = execResult.stdout | ||||
|   let exitCode: number | ||||
|   let stdOut: string | ||||
|   let execResult | ||||
|   let failOnError: boolean = true | ||||
|   if (retryArg === -1) { | ||||
|     failOnError = false | ||||
|     retryArg = 0 | ||||
|   } | ||||
|   if (!process.env.NPMTS_TEST) { // NPMTS_TEST is used during testing | ||||
|     for (let i = 0; i <= retryArg; i++) { | ||||
|       if (!bareArg) { | ||||
|         execResult = plugins.shelljs.exec( | ||||
|           `bash -c "${nvmSourceString} ${commandArg}"` | ||||
|         ) | ||||
|       } else { | ||||
|         execResult = plugins.shelljs.exec(commandArg) | ||||
|       } | ||||
|       exitCode = execResult.code | ||||
|       stdOut = execResult.stdout | ||||
|  | ||||
|             // determine how bash reacts to error and success | ||||
|             if (exitCode !== 0 && i === retryArg) { // something went wrong and retries are exhausted | ||||
|                 process.exit(1) | ||||
|             } else if (exitCode === 0 || retryArg === -1) { // everything went fine, or no error wanted | ||||
|                 i = retryArg + 1 // retry +1 breaks for loop, if everything works out ok retrials are not wanted | ||||
|             } else { | ||||
|                 plugins.beautylog.warn('Something went wrong! Exit Code: ' + exitCode.toString()) | ||||
|                 plugins.beautylog.info('Retry ' + (i + 1).toString() + ' of ' + retryArg.toString()) | ||||
|             } | ||||
|       // determine how bash reacts to error and success | ||||
|       if (exitCode !== 0 && i === retryArg) { // something went wrong and retries are exhausted | ||||
|         if (failOnError) { | ||||
|           process.exit(1) | ||||
|         } | ||||
|     } else { | ||||
|         plugins.beautylog.log('ShellExec would be: ' + commandArg) | ||||
|       } else if (exitCode === 0) { // everything went fine, or no error wanted | ||||
|         i = retryArg + 1 // retry +1 breaks for loop, if everything works out ok retrials are not wanted | ||||
|       } else { | ||||
|         plugins.beautylog.warn('Something went wrong! Exit Code: ' + exitCode.toString()) | ||||
|         plugins.beautylog.info('Retry ' + (i + 1).toString() + ' of ' + retryArg.toString()) | ||||
|       } | ||||
|     } | ||||
|     return stdOut | ||||
|   } else { | ||||
|     plugins.beautylog.log('ShellExec would be: ' + commandArg) | ||||
|   } | ||||
|   return stdOut | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * bashBare allows usage of bash without sourcing any files like nvm | ||||
|  */ | ||||
| export let bashBare = (commandArg: string, retryArg: number = 2) => { | ||||
|     return bash(commandArg, retryArg, true) | ||||
|   return bash(commandArg, retryArg, true) | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * bashNoError allows executing stuff without throwing an error | ||||
|  */ | ||||
| export let bashNoError = (commandArg: string) => { | ||||
|     return bash(commandArg,-1) | ||||
| export let bashNoError = (commandArg: string): string => { | ||||
|   return bash(commandArg, -1) | ||||
| } | ||||
|   | ||||
| @@ -3,42 +3,43 @@ import * as configModule from './npmci.config' | ||||
| import { bash, bashNoError } from './npmci.bash' | ||||
| import { nvmAvailable } from './npmci.bash' | ||||
| export let install = (versionArg) => { | ||||
|     let done = plugins.q.defer() | ||||
|     plugins.beautylog.log(`now installing node version ${versionArg}`) | ||||
|     let version: string | ||||
|     if (versionArg === 'stable') { | ||||
|         version = 'stable' | ||||
|     } else if (versionArg === 'lts') { | ||||
|         version = '6' | ||||
|     } else if (versionArg === 'legacy') { | ||||
|         version = '6' | ||||
|     } else { | ||||
|         version = versionArg | ||||
|     }; | ||||
|     if (nvmAvailable) { | ||||
|         bash(`nvm install ${version} && nvm alias default ${version}`) | ||||
|         plugins.beautylog.success(`Node version ${version} successfully installed!`) | ||||
|     } else { | ||||
|         plugins.beautylog.warn('Nvm not in path so staying at installed node version!') | ||||
|     }; | ||||
|     bash('node -v') | ||||
|     bash('npm -v') | ||||
|  | ||||
|     // lets look for further config | ||||
|     configModule.getConfig() | ||||
|         .then(configArg => { | ||||
|             for (let npmTool of configArg.globalNpmTools) { | ||||
|                 plugins.beautylog.info(`Checking for global "${npmTool}"`) | ||||
|                 let whichOutput = bashNoError(`which ${npmTool}`) | ||||
|                 let toolAvailable: boolean = !(/not found/.test(whichOutput)) | ||||
|                 if (toolAvailable) { | ||||
|                     plugins.beautylog.log(`Tool ${npmTool} is available`) | ||||
|                 } else { | ||||
|                     plugins.beautylog.info(`globally installing ${npmTool} from npm`) | ||||
|                     bash(`npm install ${npmTool} -q -g`) | ||||
|                 } | ||||
|             } | ||||
|             done.resolve() | ||||
|         }) | ||||
|     return done.promise | ||||
|   let done = plugins.q.defer() | ||||
|   plugins.beautylog.log(`now installing node version ${versionArg}`) | ||||
|   let version: string | ||||
|   if (versionArg === 'stable') { | ||||
|     version = 'stable' | ||||
|   } else if (versionArg === 'lts') { | ||||
|     version = '6' | ||||
|   } else if (versionArg === 'legacy') { | ||||
|     version = '6' | ||||
|   } else { | ||||
|     version = versionArg | ||||
|   }; | ||||
|   if (nvmAvailable) { | ||||
|     bash(`nvm install ${version} && nvm alias default ${version}`) | ||||
|     plugins.beautylog.success(`Node version ${version} successfully installed!`) | ||||
|   } else { | ||||
|     plugins.beautylog.warn('Nvm not in path so staying at installed node version!') | ||||
|   }; | ||||
|   bash('node -v') | ||||
|   bash('npm -v') | ||||
|   // lets look for further config | ||||
|   configModule.getConfig() | ||||
|     .then(configArg => { | ||||
|       plugins.beautylog.log('Now checking for needed global npm tools...') | ||||
|       for (let npmTool of configArg.globalNpmTools) { | ||||
|         plugins.beautylog.info(`Checking for global "${npmTool}"`) | ||||
|         let whichOutput = bashNoError(`which ${npmTool}`) | ||||
|         let toolAvailable: boolean = !((/not\sfound/.test(whichOutput)) || whichOutput === '') | ||||
|         if (toolAvailable) { | ||||
|           plugins.beautylog.log(`Tool ${npmTool} is available`) | ||||
|         } else { | ||||
|           plugins.beautylog.info(`globally installing ${npmTool} from npm`) | ||||
|           bash(`npm install ${npmTool} -q -g`) | ||||
|         } | ||||
|       } | ||||
|       plugins.beautylog.success('all global npm tools specified in npmextra.json are now available!') | ||||
|       done.resolve() | ||||
|     }) | ||||
|   return done.promise | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user