bootstrap/bin.jsView |
---|
48 | 48 … | function main(args) { |
49 | 49 … | var viewerUrl = null |
50 | 50 … | var wsUrl = null |
51 | 51 … | |
| 52 … | + var cmd |
52 | 53 … | var cmdArgs = [] |
53 | 54 … | while (args.length) { |
54 | 55 … | var arg = args.shift() |
55 | 56 … | switch (arg) { |
61 | 62 … | case '--blobs-url': blobsUrl = shift(args); break |
62 | 63 … | case '--ws-url': wsUrl = shift(args); break |
63 | 64 … | case '--viewer-url': viewerUrl = shift(args); break |
64 | 65 … | case '--branch': branches.push(shift(args)); break |
| 66 … | + case '--exec': cmd = shift(args); break |
65 | 67 … | case '--': cmdArgs.push.apply(cmdArgs, args.splice(0)); break |
66 | 68 … | default: cmdArgs.push(arg); break |
67 | 69 … | } |
68 | 70 … | } |
88 | 90 … | blobsUrl = viewerUrl + '/%s' |
89 | 91 … | msgsUrl = viewerUrl + '/%s.json' |
90 | 92 … | } |
91 | 93 … | |
92 | | - if (!port && !cmdArgs.length) { |
93 | | - port = 8989 |
94 | | - } |
| 94 … | + var doExec = cmdArgs.length > 0 || cmd != null |
| 95 … | + if (!doExec) port = 8990 |
95 | 96 … | |
96 | 97 … | server = http.createServer(serve) |
97 | 98 … | server.listen(port, host, function () { |
98 | 99 … | port = server.address().port |
111 | 112 … | host: host, |
112 | 113 … | npm: ssbNpmConfig |
113 | 114 … | }) |
114 | 115 … | |
115 | | - if (cmdArgs.length) { |
116 | | - var cmd = cmdArgs.shift() |
117 | | - |
| 116 … | + if (doExec) { |
118 | 117 … | var registryUrl = 'http://' + (host || 'localhost') + ':' + port |
119 | | - + '/npm/' + branches.map(encodeURIComponent).join(',') + '/' |
| 118 … | + + '/npm/' + branches.map(encodeURIComponent).join(',') |
120 | 119 … | var env = {} |
121 | 120 … | for (var k in process.env) env[k] = process.env[k] |
122 | 121 … | env.npm_config_registry = registryUrl |
| 122 … | + if (!cmd) cmd = 'npm' |
123 | 123 … | if (cmd === 'npm') { |
124 | 124 … | cmdArgs.unshift('--no-update-notifier') |
125 | 125 … | cmdArgs.unshift('--fetch-retries=0') |
126 | | - cmdArgs.unshift('--download=' + registryUrl + '-/prebuild/{name}-v{version}-{runtime}-v{abi}-{platform}{libc}-{arch}.tar.gz') |
| 126 … | + cmdArgs.unshift('--download={registry}/-/prebuild/{name}-v{version}-{runtime}-v{abi}-{platform}{libc}-{arch}.tar.gz') |
| 127 … | + cmdArgs.unshift('--' + registryUrl.replace(/^https?:/, '') + ':_authToken=1') |
| 128 … | + cmdArgs.unshift('--registry={registry}') |
| 129 … | + } else if (cmd === 'yarn') { |
| 130 … | + cmdArgs.unshift('--registry={registry}') |
127 | 131 … | } |
128 | 132 … | cmdArgs.forEach(function (arg, i) { |
129 | 133 … | cmdArgs[i] = arg.replace(/\{registry\}/g, registryUrl) |
130 | 134 … | }) |