From 2a1dda12d45ad349c0c5648369c44815a15f77ac Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Tue, 27 Apr 2021 17:14:49 +0000 Subject: [PATCH] pkgs: diff-flake: use 'makeWrapper' This makes it easier to test the script, as I just run it normally without building it. --- pkgs/diff-flake/default.nix | 26 ++++++++++++++++---------- pkgs/diff-flake/diff-flake | 14 +++++++------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/pkgs/diff-flake/default.nix b/pkgs/diff-flake/default.nix index 1f34abf..9511952 100644 --- a/pkgs/diff-flake/default.nix +++ b/pkgs/diff-flake/default.nix @@ -1,13 +1,14 @@ -{ coreutils, git, gnused, lib, shellcheck, stdenvNoCC }: -stdenvNoCC.mkDerivation { +{ coreutils, git, gnused, makeWrapper, lib, shellcheck, stdenvNoCC }: +stdenvNoCC.mkDerivation rec { pname = "diff-flake"; version = "0.1.0"; src = ./diff-flake; - phases = [ "buildPhase" "installPhase" ]; + phases = [ "buildPhase" "installPhase" "fixupPhase" ]; buildInputs = [ + makeWrapper shellcheck ]; @@ -17,15 +18,20 @@ stdenvNoCC.mkDerivation { installPhase = '' mkdir -p $out/bin - cp $src $out/bin/diff-flake - substituteAllInPlace $out/bin/diff-flake - patchShebangs $out/bin/diff-flake + cp $src $out/bin/${pname} + chmod a+x $out/bin/${pname} ''; - cat = "${coreutils}/bin/cat"; - mktemp = "${coreutils}/bin/mktemp"; - git = "${git}/bin/git"; - sed = "${gnused}/bin/sed"; + wrapperPath = lib.makeBinPath [ + coreutils + git + gnused + ]; + + fixupPhase = '' + patchShebangs $out/bin/${pname} + wrapProgram $out/bin/${pname} --prefix PATH : "${wrapperPath}" + ''; meta = with lib; { description = "Nix flake helper to visualize changes in closures"; diff --git a/pkgs/diff-flake/diff-flake b/pkgs/diff-flake/diff-flake index 18becfb..8b7f83e 100755 --- a/pkgs/diff-flake/diff-flake +++ b/pkgs/diff-flake/diff-flake @@ -3,7 +3,7 @@ set -eu NEW_REV= -PREVIOUS_REV="$(@git@ rev-parse @~)" +PREVIOUS_REV="$(git rev-parse @~)" OUTPUT_FILE=/dev/stdout FLAKE_OUTPUTS=() NIX_BUILD_ARGS=() @@ -14,9 +14,9 @@ print_err() { sanitize_output() { if [ "$OUTPUT_FILE" != "/dev/stdout" ]; then - @sed@ 's/\x1b\[[0-9;]*m//g' + sed 's/\x1b\[[0-9;]*m//g' else - @cat@ + cat fi } @@ -61,11 +61,11 @@ parse_args() { shift ;; -n|--new-rev) - NEW_REV="$(@git@ rev-parse "$1")" + NEW_REV="$(git rev-parse "$1")" shift ;; -p|--previous-rev) - PREVIOUS_REV="$(@git@ rev-parse "$1")" + PREVIOUS_REV="$(git rev-parse "$1")" shift ;; --) @@ -98,8 +98,8 @@ fill_default_outputs() { diff_output() { local PREV NEW; - PREV="$(@mktemp@ --dry-run)" - NEW="$(@mktemp@ --dry-run)" + PREV="$(mktemp --dry-run)" + NEW="$(mktemp --dry-run)" nix build "${NIX_BUILD_ARGS[@]}" ".?rev=${PREVIOUS_REV}#$1" -o "$PREV" nix build "${NIX_BUILD_ARGS[@]}" ".${NEW_REV:+?rev=$NEW_REV}#$1" -o "$NEW"