Skip to content

Commit 9518881

Browse files
committed
Fix start:dev on windows
1 parent c3117a1 commit 9518881

File tree

3 files changed

+64
-10
lines changed

3 files changed

+64
-10
lines changed

package-lock.json

Lines changed: 52 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"prestart": "node setup-local.js",
1010
"start": "electron-forge start",
1111
"prestart:dev": "node setup-dev.js",
12-
"start:dev": "APP_URL='http://local.httptoolkit.tech:8080' electron-forge start",
12+
"start:dev": "cross-env APP_URL='http://local.httptoolkit.tech:8080' electron-forge start",
1313
"package": "electron-forge package",
1414
"make": "electron-forge make",
1515
"publish": "electron-forge publish"
@@ -46,6 +46,7 @@
4646
"@types/yargs": "^15.0.3",
4747
"babel-plugin-transform-async-to-generator": "^6.24.1",
4848
"babel-preset-env": "^1.7.0",
49+
"cross-env": "^7.0.3",
4950
"electron": "^4.1.4",
5051
"electron-forge": "^5.2.4",
5152
"electron-notarize": "^0.2.1",

setup-dev.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ const mkdir = promisify(fs.mkdir);
1212
const writeFile = promisify(fs.writeFile);
1313
const chmod = promisify(fs.chmod);
1414

15-
const sleepForeverScript = `#!/usr/bin/env node
16-
setInterval(() => {}, 999999999);
17-
`;
18-
1915
// For a full local dev environment, we want to use a standalone UI & server running externally.
2016
// This lets us edit both and the desktop together. We do this by creating a fake server,
2117
// which doesn't exit, but otherwise does nothing.
@@ -28,11 +24,16 @@ async function setUpDevEnv() {
2824
const binFolder = path.join(serverFolder, 'bin');
2925
await mkdir(binFolder, { recursive: true });
3026

31-
const bins = ['httptoolkit-server', 'httptoolkit-server.cmd'].map((bin) => path.join(binFolder, bin));
32-
await Promise.all(bins.map(async (bin) => {
33-
await writeFile(bin, sleepForeverScript);
34-
await chmod(bin, 0o755);
35-
}));
27+
// Create a node/*nix-runnable fake-server that just sleeps forever:
28+
const script = path.join(binFolder, "httptoolkit-server");
29+
await writeFile(script, `#!/usr/bin/env node
30+
setInterval(() => {}, 999999999);
31+
`);
32+
await chmod(script, 0o755);
33+
34+
// Create a windows wrapper for that script:
35+
const winWrapper = path.join(binFolder, "httptoolkit-server.cmd");
36+
await writeFile(winWrapper, `node "%~dp0\\httptoolkit-server" %*`);
3637
}
3738

3839
setUpDevEnv().catch(e => {

0 commit comments

Comments
 (0)