From 471795b019d800dca65e2a400fbdb166e6f821cd Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Sat, 13 Feb 2021 23:11:00 +0300 Subject: [PATCH] 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 --- editors/code/src/main.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts index d18d6c8a9f..620810d722 100644 --- a/editors/code/src/main.ts +++ b/editors/code/src/main.ts @@ -246,10 +246,10 @@ async function patchelf(dest: PathLike): Promise { }, async (progress, _) => { const expression = ` - {src, pkgs ? import {}}: + {srcStr, pkgs ? import {}}: pkgs.stdenv.mkDerivation { name = "rust-analyzer"; - inherit src; + src = /. + srcStr; phases = [ "installPhase" "fixupPhase" ]; installPhase = "cp $src $out"; fixupPhase = '' @@ -262,7 +262,7 @@ async function patchelf(dest: PathLike): Promise { await fs.rename(dest, origFile); progress.report({ message: "Patching executable", increment: 20 }); await new Promise((resolve, reject) => { - const handle = exec(`nix-build -E - --arg src '${origFile}' -o ${dest}`, + const handle = exec(`nix-build -E - --argstr srcStr '${origFile}' -o '${dest}'`, (err, stdout, stderr) => { if (err != null) { reject(Error(stderr));