Skip to content

Commit 115fa1d

Browse files
authored
Use execFile instead of exec to fix Windows path issue (#59)
1 parent d25ba3a commit 115fa1d

File tree

4 files changed

+5
-6
lines changed

4 files changed

+5
-6
lines changed

src/NewProject.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ let createNewProject = async () => {
8181
await updateRescriptJson(~projectName, ~versions)
8282

8383
await RescriptVersions.installVersions(versions)
84-
let _ = await Promisified.ChildProcess.exec("git init")
84+
let _ = await Promisified.ChildProcess.execFile("git", ["init"])
8585

8686
s->P.Spinner.stop("Project created.")
8787
}

src/RescriptVersions.res

+1-2
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,8 @@ let promptVersions = async () => {
6666
let installVersions = async ({rescriptVersion, rescriptCoreVersion}) => {
6767
let packageManager = PackageManagers.getActivePackageManager()
6868
let packages = [`rescript@${rescriptVersion}`, `@rescript/core@${rescriptCoreVersion}`]
69-
let command = `${packageManager} add ${packages->Array.join(" ")}`
7069

71-
let _ = await Node.Promisified.ChildProcess.exec(command)
70+
let _ = await Node.Promisified.ChildProcess.execFile(packageManager, ["add", ...packages])
7271
}
7372

7473
let esmModuleSystemName = ({rescriptVersion}) =>

src/bindings/Node.res

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,6 @@ module Promisified = {
8585
type execResult = {stdout: string, stderr: string}
8686

8787
@module("./NodePromisified.mjs")
88-
external exec: string => promise<execResult> = "exec"
88+
external execFile: (string, array<string>) => promise<execResult> = "execFile"
8989
}
9090
}

src/bindings/NodePromisified.mjs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { exec as execCallback } from "child_process";
1+
import { execFile as execFileCallback } from "child_process";
22
import { promisify } from "util";
33

4-
export const exec = promisify(execCallback);
4+
export const execFile = promisify(execFileCallback);

0 commit comments

Comments
 (0)