1 | #!/usr/bin/env node
|
2 |
|
3 | var proc = require('child_process')
|
4 | var os = require('os')
|
5 |
|
6 | proc.exec('node-gyp-build-test', function (err) {
|
7 | if (err) preinstall()
|
8 | })
|
9 |
|
10 | function build () {
|
11 | proc.spawn(os.platform() === 'win32' ? 'node-gyp.cmd' : 'node-gyp', ['rebuild'], {stdio: 'inherit'}).on('exit', function (code) {
|
12 | if (code || !process.argv[3]) process.exit(code)
|
13 | exec(process.argv[3]).on('exit', function (code) {
|
14 | process.exit(code)
|
15 | })
|
16 | })
|
17 | }
|
18 |
|
19 | function preinstall () {
|
20 | if (!process.argv[2]) return build()
|
21 | exec(process.argv[2]).on('exit', function (code) {
|
22 | if (code) process.exit(code)
|
23 | build()
|
24 | })
|
25 | }
|
26 |
|
27 | function exec (cmd) {
|
28 | if (process.platform !== 'win32') {
|
29 | var shell = os.platform() === 'android' ? 'sh' : '/bin/sh'
|
30 | return proc.spawn(shell, ['-c', cmd], {
|
31 | stdio: 'inherit'
|
32 | })
|
33 | }
|
34 |
|
35 | return proc.spawn(process.env.comspec || 'cmd.exe', ['/s', '/c', '"' + cmd + '"'], {
|
36 | windowsVerbatimArguments: true,
|
37 | stdio: 'inherit'
|
38 | })
|
39 | }
|