Make pkg expressions more idiomatic, store scripts in separate files

This commit is contained in:
Reinout Meliesie 2026-04-30 14:24:48 +02:00
commit a2f66ba293
Signed by: zedfrigg
GPG key ID: 3AFCC06481308BC6
4 changed files with 47 additions and 36 deletions

View file

@ -0,0 +1,4 @@
#!/usr/bin/zsh --errexit
exec journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID "$1")"

View file

@ -1,30 +1,32 @@
{ pkgs, stdenvNoCC }:
{
# Build tools.
installShellFiles, stdenvNoCC,
# Packages.
systemd, zsh,
}:
with pkgs;
with stdenvNoCC;
mkDerivation {
pname = "journalctl-last-invocation";
version = "2026-04-29";
name = "journalctl-last-invocation";
phases = [ "createSourcesPhase" "installPhase" ];
src = ./.;
createSourcesPhase = ''
# Same directory structure that `unpackPhase` would use.
mkdir -p /build/source
cat <<- EOF > /build/source/journalctl-last-invocation
#!${bash}/bin/sh
exec ${systemd}/bin/journalctl _SYSTEMD_INVOCATION_ID=\$(${systemd}/bin/systemctl show --value --property=InvocationID \$1)
EOF
'';
nativeBuildInputs = [ installShellFiles ];
buildInputs = [ zsh ];
installPhase = ''
mkdir -p $out/bin
runHook preInstall
cp /build/source/journalctl-last-invocation $out/bin/
installBin journalctl-last-invocation
chmod +x $out/bin/journalctl-last-invocation
runHook postInstall
'';
preFixup = ''
substituteInPlace $out/bin/journalctl-last-invocation \
--replace-fail journalctl ${systemd}/bin/journalctl \
--replace-fail systemctl ${systemd}/bin/systemctl
'';
}

View file

@ -0,0 +1,4 @@
#!/usr/bin/zsh --errexit
exec find /nix/store -maxdepth 1 -type d -name "*-$1-*"

View file

@ -1,30 +1,31 @@
{ pkgs, stdenvNoCC }:
{
# Build tools.
installShellFiles, stdenvNoCC,
# Packages.
findutils, zsh,
}:
with pkgs;
with stdenvNoCC;
mkDerivation {
pname = "nix-store-fuzzy-find";
version = "2026-04-29";
name = "nix-store-fuzzy-find";
phases = [ "createSourcesPhase" "installPhase" ];
src = ./.;
createSourcesPhase = ''
# Same directory structure that `unpackPhase` would use.
mkdir -p /build/source
cat <<- EOF > /build/source/nix-store-fuzzy-find
#!${bash}/bin/sh
exec ${findutils}/bin/find /nix/store -maxdepth 1 -type d -name "*-\$1-*"
EOF
'';
nativeBuildInputs = [ installShellFiles ];
buildInputs = [ zsh ];
installPhase = ''
mkdir -p $out/bin
runHook preInstall
cp /build/source/nix-store-fuzzy-find $out/bin/
installBin nix-store-fuzzy-find
chmod +x $out/bin/nix-store-fuzzy-find
runHook postInstall
'';
preFixup = ''
substituteInPlace $out/bin/nix-store-fuzzy-find \
--replace-fail find ${findutils}/bin/find
'';
}