|
1 | 1 | #!/usr/bin/env node
|
2 | 2 |
|
3 |
| -const { spawn } = require("child_process"); |
4 |
| -const fs = require("fs"); |
| 3 | +const { spawnSync } = require("child_process"); |
| 4 | +const fs = require("fs"); |
| 5 | + |
| 6 | +function run(cmd, args, opts) { |
| 7 | + const output = spawnSync(cmd, args, opts); |
| 8 | + |
| 9 | + if (output.error != null) { |
| 10 | + throw output.error; |
| 11 | + } |
| 12 | + |
| 13 | + if (output.status !== 0) { |
| 14 | + throw new Error("Bad error code when running `" + cmd + " " + args.join(" ") + "`: " + output.status); |
| 15 | + } |
| 16 | +} |
5 | 17 |
|
6 | 18 | let folderName = '.';
|
7 | 19 |
|
8 | 20 | if (process.argv.length >= 3) {
|
9 |
| - folderName = process.argv[2]; |
| 21 | + folderName = process.argv[2]; |
10 | 22 | if (!fs.existsSync(folderName)) {
|
11 | 23 | fs.mkdirSync(folderName);
|
12 | 24 | }
|
13 | 25 | }
|
14 | 26 |
|
15 |
| -const clone = spawn("git", ["clone", "https://github.com/rustwasm/rust-webpack-template.git", folderName]); |
16 |
| - |
17 |
| -clone.on("close", (code) => { |
18 |
| - if (code !== 0) { |
19 |
| - handleError("install", code); |
20 |
| - } else { |
21 |
| - console.log(" 🦀 Rust + 🕸 WebAssembly + Webpack = ❤️ "); |
22 |
| - |
23 |
| - const install = spawn('npm', ['install'], { cwd: folderName }); |
24 |
| - install.on("close", (code) => { |
25 |
| - if (code !== 0) { |
26 |
| - handleError("install", code); |
27 |
| - } else { |
28 |
| - console.log(" Installed dependencies ✅ "); |
29 |
| - } |
30 |
| - }); |
31 |
| - } |
32 |
| -}); |
| 27 | +run("git", ["clone", "https://github.com/rustwasm/rust-webpack-template.git", folderName]); |
33 | 28 |
|
34 |
| -function handleError(type, errCode) { |
35 |
| - // TODO(sven): handle error here |
36 |
| - console.error() |
37 |
| - process.exit(errCode); |
38 |
| -} |
| 29 | +console.log(" 🦀 Rust + 🕸 WebAssembly + Webpack = ❤️ "); |
| 30 | + |
| 31 | +run("npm", ["install"], { cwd: folderName, shell: true }); |
| 32 | + |
| 33 | +console.log(" Installed dependencies ✅ "); |
0 commit comments