diff options
author | Yaroslav Bolyukin <[email protected]> | 2021-02-13 20:11:00 +0000 |
---|---|---|
committer | Yaroslav Bolyukin <[email protected]> | 2021-02-13 20:11:00 +0000 |
commit | 471795b019d800dca65e2a400fbdb166e6f821cd (patch) | |
tree | 00f69ad87dfeb290613f138c954fbcae018b121b /editors/code/src | |
parent | 3fdc556632e39145678219ace8476e12d7d70d41 (diff) |
fix: tolerate spaces in nix binary patching
If path to original file contains space (I.e on code insiders, where
default data directory is ~/Code - Insiders/), then there is syntax
error evaluating src arg.
Instead pass path as str, and coerce to path back in nix expression
Signed-off-by: Yaroslav Bolyukin <[email protected]>
Diffstat (limited to 'editors/code/src')
-rw-r--r-- | editors/code/src/main.ts | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index d18d6c8a9..620810d72 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts | |||
@@ -246,10 +246,10 @@ async function patchelf(dest: PathLike): Promise<void> { | |||
246 | }, | 246 | }, |
247 | async (progress, _) => { | 247 | async (progress, _) => { |
248 | const expression = ` | 248 | const expression = ` |
249 | {src, pkgs ? import <nixpkgs> {}}: | 249 | {srcStr, pkgs ? import <nixpkgs> {}}: |
250 | pkgs.stdenv.mkDerivation { | 250 | pkgs.stdenv.mkDerivation { |
251 | name = "rust-analyzer"; | 251 | name = "rust-analyzer"; |
252 | inherit src; | 252 | src = /. + srcStr; |
253 | phases = [ "installPhase" "fixupPhase" ]; | 253 | phases = [ "installPhase" "fixupPhase" ]; |
254 | installPhase = "cp $src $out"; | 254 | installPhase = "cp $src $out"; |
255 | fixupPhase = '' | 255 | fixupPhase = '' |
@@ -262,7 +262,7 @@ async function patchelf(dest: PathLike): Promise<void> { | |||
262 | await fs.rename(dest, origFile); | 262 | await fs.rename(dest, origFile); |
263 | progress.report({ message: "Patching executable", increment: 20 }); | 263 | progress.report({ message: "Patching executable", increment: 20 }); |
264 | await new Promise((resolve, reject) => { | 264 | await new Promise((resolve, reject) => { |
265 | const handle = exec(`nix-build -E - --arg src '${origFile}' -o ${dest}`, | 265 | const handle = exec(`nix-build -E - --argstr srcStr '${origFile}' -o '${dest}'`, |
266 | (err, stdout, stderr) => { | 266 | (err, stdout, stderr) => { |
267 | if (err != null) { | 267 | if (err != null) { |
268 | reject(Error(stderr)); | 268 | reject(Error(stderr)); |