haredo: remove shell wrapper overhead
There's only three mentions of `sh` in the source code, being only two of them command calls; thus, is very trivial to patch them directly.
This commit is contained in:
parent
d3195bd6d5
commit
b155c656a0
20
pkgs/by-name/ha/haredo/001-use-nix-store-sh.patch
Normal file
20
pkgs/by-name/ha/haredo/001-use-nix-store-sh.patch
Normal file
@ -0,0 +1,20 @@
|
||||
diff --git a/src/haredo.ha b/src/haredo.ha
|
||||
index c2e56e6..304c9ad 100644
|
||||
--- a/src/haredo.ha
|
||||
+++ b/src/haredo.ha
|
||||
@@ -280,12 +280,12 @@ fn try_do(
|
||||
const tmpfilepath = strings::concat(ctx.tmpdir, "/", tmpfilename);
|
||||
|
||||
const cmd = if (ctx.verbose) {
|
||||
- fmt::errorln("* sh -ev", dopaths.do, dopaths.target,
|
||||
+ fmt::errorln("* @bash@/bin/sh -ev", dopaths.do, dopaths.target,
|
||||
dopaths.basename, tmpfilepath)?;
|
||||
- yield exec::cmd("sh", "-ev", dopaths.do, dopaths.target,
|
||||
+ yield exec::cmd("@bash@/bin/sh", "-ev", dopaths.do, dopaths.target,
|
||||
dopaths.basename, tmpfilepath)?;
|
||||
} else {
|
||||
- yield exec::cmd("sh", "-e", dopaths.do, dopaths.target,
|
||||
+ yield exec::cmd("@bash@/bin/sh", "-e", dopaths.do, dopaths.target,
|
||||
dopaths.basename, tmpfilepath)?;
|
||||
};
|
||||
|
@ -7,6 +7,7 @@
|
||||
nix-update-script,
|
||||
makeWrapper,
|
||||
bash,
|
||||
substituteAll,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "haredo";
|
||||
@ -24,6 +25,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
hash = "sha256-gpui5FVRw3NKyx0AB/4kqdolrl5vkDudPOgjHc/IE4U=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Use nix store's bash instead of sh. `@bash@/bin/sh` is used, since haredo expects a posix shell.
|
||||
(substituteAll {
|
||||
src = ./001-use-nix-store-sh.patch;
|
||||
inherit bash;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
hare
|
||||
makeWrapper
|
||||
@ -66,11 +75,6 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapProgram $out/bin/haredo \
|
||||
--prefix PATH : "${lib.makeBinPath [ bash ]}"
|
||||
'';
|
||||
|
||||
setupHook = ./setup-hook.sh;
|
||||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
Loading…
Reference in New Issue
Block a user