| 81 | } |
| 82 | |
| 83 | run(params, callback) { |
| 84 | |
| 85 | let environment = params.args[0]; |
| 86 | let release = params.flags.r || params.vflags.release; |
| 87 | let force = params.flags.f || params.vflags.force; |
| 88 | let version = null; |
| 89 | |
| 90 | if (environment) { |
| 91 | if (environment === RELEASE_ENV) { |
| 92 | if (release[0]) { |
| 93 | version = release[0]; |
| 94 | } |
| 95 | } else if (release) { |
| 96 | return callback(new Error('Can not release to an environment')); |
| 97 | } |
| 98 | } else if (release) { |
| 99 | environment = RELEASE_ENV; |
| 100 | if (release[0]) { |
| 101 | version = release[0]; |
| 102 | } |
| 103 | } else { |
| 104 | return callback(new Error('Please specify an environment')); |
| 105 | } |
| 106 | |
| 107 | let host = 'packages.stdlib.com'; |
| 108 | let port = 443; |
| 109 | |
| 110 | let hostname = (params.flags.h && params.flags.h[0]) || ''; |
| 111 | let matches = hostname.match(/^(https?:\/\/)?(.*?)(:\d+)?$/); |
| 112 | |
| 113 | if (hostname && matches) { |
| 114 | host = matches[2]; |
| 115 | port = parseInt((matches[3] || '').substr(1) || (hostname.indexOf('https') === 0 ? 443 : 80)); |
| 116 | } |
| 117 | |
| 118 | let pkg; |
| 119 | |
| 120 | try { |
| 121 | pkg = serviceConfig.get(); |
| 122 | } catch(err) { |
| 123 | return callback(err); |
| 124 | } |
| 125 | |
| 126 | let registry = new Registry(host, port, config.get('ACCESS_TOKEN')); |
| 127 | console.log(); |
| 128 | console.log(`Packaging ${pkg.stdlib.name}@${environment === RELEASE_ENV ? version || pkg.stdlib.version : environment}...`); |
| 129 | |
| 130 | !fs.existsSync('/tmp') && fs.mkdirSync('/tmp'); |
| 131 | !fs.existsSync('/tmp/stdlib') && fs.mkdirSync('/tmp/stdlib', 0o777); |
| 132 | let serviceName = (pkg.stdlib.name).replace(/\//g, '.'); |
| 133 | let tmpPath = `/tmp/stdlib/${serviceName}.${new Date().valueOf()}.tar.gz`; |
| 134 | |
| 135 | let start = new Date().valueOf(); |
| 136 | |
| 137 | let tarball = fs.createWriteStream(tmpPath, {mode: 0o777}); |
| 138 | |
| 139 | let pack = tar.pack(); |
| 140 | |