1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00

use lib.getExe and lib.getExe' in packaged scripts

Replace all ${pkg}/bin/name patterns with:
- lib.getExe pkg (for main executables: curl, jq, gnused, ffmpeg, etc.)
- lib.getExe' pkg "name" (for specific binaries: coreutils, util-linux, etc.)
This commit is contained in:
2026-02-17 21:35:28 +01:00
parent 4fc29ff0fe
commit e67d6d7df2
12 changed files with 50 additions and 149 deletions

View File

@@ -1,5 +1,6 @@
# Recover files from a corrupted exFAT SD card
{
lib,
writers,
exfatprogs,
util-linux,
@@ -11,24 +12,24 @@ writers.writeDashBin "fix-sd" ''
set -efu
drive="''${1:?Usage: fix-sd /dev/sdX [output-dir]}"
output_dir="''${2:-$(${coreutils}/bin/mktemp -d "''${TMPDIR:-/tmp}/fix-sd-XXXXXX")}"
mountpoint="$(${coreutils}/bin/mktemp -d "''${TMPDIR:-/tmp}/fix-sd-mount-XXXXXX")"
output_dir="''${2:-$(${lib.getExe' coreutils "mktemp"} -d "''${TMPDIR:-/tmp}/fix-sd-XXXXXX")}"
mountpoint="$(${lib.getExe' coreutils "mktemp"} -d "''${TMPDIR:-/tmp}/fix-sd-mount-XXXXXX")"
trap clean EXIT
clean() {
${util-linux}/bin/umount "$mountpoint" 2>/dev/null || true
${coreutils}/bin/rmdir "$mountpoint" 2>/dev/null || true
${lib.getExe' util-linux "umount"} "$mountpoint" 2>/dev/null || true
${lib.getExe' coreutils "rmdir"} "$mountpoint" 2>/dev/null || true
}
filenames="$(${exfatprogs}/bin/fsck.exfat "$drive" 2>&1 | ${gnused}/bin/sed -nE "s/.* file '(.*?)' is not allocated.*/\1/p")"
${coreutils}/bin/mkdir -p "$mountpoint" "$output_dir"
${util-linux}/bin/mount "$drive" "$mountpoint"
filenames="$(${lib.getExe' exfatprogs "fsck.exfat"} "$drive" 2>&1 | ${lib.getExe gnused} -nE "s/.* file '(.*?)' is not allocated.*/\1/p")"
${lib.getExe' coreutils "mkdir"} -p "$mountpoint" "$output_dir"
${lib.getExe' util-linux "mount"} "$drive" "$mountpoint"
echo "$filenames" | while read -r filename; do
[ -n "$filename" ] || continue
${findutils}/bin/find "$mountpoint" -type f -name "$filename" -exec ${coreutils}/bin/cp {} "$output_dir" \;
${lib.getExe' findutils "find"} "$mountpoint" -type f -name "$filename" -exec ${lib.getExe' coreutils "cp"} {} "$output_dir" \;
done
echo "Recovered files saved to $output_dir"
${exfatprogs}/bin/fsck.exfat "$drive"
${lib.getExe' exfatprogs "fsck.exfat"} "$drive"
''