summaryrefslogtreecommitdiffstats
path: root/pkgs
diff options
context:
space:
mode:
authorhyperfekt <git@hyperfekt.net>2019-02-23 19:31:53 +0100
committerLassulus <github@lassul.us>2019-05-19 01:20:13 +0900
commitde5a9dea8812f0d57c31aaaf2b938a85876bd321 (patch)
treeed4c015126b64eaaf39dce34c86ce1a73eeadba6 /pkgs
parent13b97cffaef8174bf4183d806ff97c57f855c6fe (diff)
gitAndTools.transcrypt: query dependencies in helper scripts
adds a tool to get the paths of the dependencies needed by the helper scripts (which are written only once and are never updated) to the output and patches them to use it expand their path
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/version-management/git-and-tools/transcrypt/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch37
2 files changed, 45 insertions, 0 deletions
diff --git a/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix b/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
index 8218ad6ffa82..cea588f76ca2 100644
--- a/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
buildInputs = [ makeWrapper git openssl coreutils utillinux gnugrep gnused gawk ];
+ patches = [ ./helper-scripts_depspathprefix.patch ];
+
installPhase = ''
install -m 755 -D transcrypt $out/bin/transcrypt
install -m 644 -D man/transcrypt.1 $out/share/man/man1/transcrypt.1
@@ -21,6 +23,12 @@ stdenv.mkDerivation rec {
wrapProgram $out/bin/transcrypt \
--prefix PATH : "${stdenv.lib.makeBinPath [ git openssl coreutils utillinux gnugrep gnused gawk ]}"
+
+ cat > $out/bin/transcrypt-depspathprefix << EOF
+ #!${stdenv.shell}
+ echo "${stdenv.lib.makeBinPath [ git openssl coreutils gawk ]}:"
+ EOF
+ chmod +x $out/bin/transcrypt-depspathprefix
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch b/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch
new file mode 100644
index 000000000000..925aadab3dd5
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch
@@ -0,0 +1,37 @@
+diff --git a/transcrypt b/transcrypt
+index a0b562d..7888f5d 100755
+--- a/transcrypt
++++ b/transcrypt
+@@ -278,6 +278,7 @@ save_helper_scripts() {
+
+ cat <<-'EOF' > "${GIT_DIR}/crypt/clean"
+ #!/usr/bin/env bash
++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ filename=$1
+ # ignore empty files
+ if [[ -s $filename ]]; then
+@@ -300,6 +301,7 @@ save_helper_scripts() {
+
+ cat <<-'EOF' > "${GIT_DIR}/crypt/smudge"
+ #!/usr/bin/env bash
++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ tempfile=$(mktemp 2> /dev/null || mktemp -t tmp)
+ trap 'rm -f "$tempfile"' EXIT
+ cipher=$(git config --get --local transcrypt.cipher)
+@@ -309,6 +311,7 @@ save_helper_scripts() {
+
+ cat <<-'EOF' > "${GIT_DIR}/crypt/textconv"
+ #!/usr/bin/env bash
++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH"
+ filename=$1
+ # ignore empty files
+ if [[ -s $filename ]]; then
+@@ -351,7 +354,7 @@ save_configuration() {
+ git config merge.renormalize 'true'
+
+ # add a git alias for listing encrypted files
+- git config alias.ls-crypt "!git ls-files | git check-attr --stdin filter | awk 'BEGIN { FS = \":\" }; /crypt$/{ print \$1 }'"
++ git config alias.ls-crypt "!PATH=\"\$(transcrypt-depspathprefix 2>/dev/null)\$PATH\"; git ls-files | git check-attr --stdin filter | awk 'BEGIN { FS = \":\" }; /crypt$/{ print \$1 }'"
+ }
+
+ # display the current configuration settings