From 52cb6b2410136db098c6be21652eddd13b9012fc Mon Sep 17 00:00:00 2001 From: yukkop Date: Wed, 23 Jul 2025 20:15:53 +0000 Subject: [PATCH] feat(package): nix-derivation-hash --- package/default.nix | 1 + package/nix-derivation-hash/default.nix | 9 +++++++++ package/nix-derivation-hash/nix-derivation-hash.sh | 9 +++++++++ 3 files changed, 19 insertions(+) create mode 100644 package/nix-derivation-hash/default.nix create mode 100644 package/nix-derivation-hash/nix-derivation-hash.sh diff --git a/package/default.nix b/package/default.nix index f865848..80ff22b 100644 --- a/package/default.nix +++ b/package/default.nix @@ -272,4 +272,5 @@ in { c-hectic = pkgs.callPackage ./c/hectic/default.nix {}; watch = pkgs.callPackage ./c/watch/default.nix {}; support-bot = pkgs.callPackage ./support-bot {}; + nix-derivation-hash = pkgs.callPackage ./nix-derivation-hash {}; } diff --git a/package/nix-derivation-hash/default.nix b/package/nix-derivation-hash/default.nix new file mode 100644 index 0000000..a46528a --- /dev/null +++ b/package/nix-derivation-hash/default.nix @@ -0,0 +1,9 @@ +{ + writeShellScriptBin, + bash, +}: let + # Use folder name as name of this system + name = builtins.baseNameOf ./.; +in writeShellScriptBin name /* sh */ '' + ${bash}/bin/sh ${./${name}.sh} "$@" +'' diff --git a/package/nix-derivation-hash/nix-derivation-hash.sh b/package/nix-derivation-hash/nix-derivation-hash.sh new file mode 100644 index 0000000..cd6b4c3 --- /dev/null +++ b/package/nix-derivation-hash/nix-derivation-hash.sh @@ -0,0 +1,9 @@ +path="$1" +base_path_name="$(basename "$path")" +sha256="$(nix-hash --type sha256 "$path")" +temp_dir="$(mktemp -d)" +temp_file="${temp_dir}/${base_path_name}.str" +printf "source:sha256:%s:/nix/store:%s" "$sha256" "$base_path_name" > "$temp_file" +nix-hash --type sha256 --truncate --base32 --flat "$temp_file" + +rm -rf "${temp_dir:?}"