summary refs log blame commit diff
path: root/pkgs/tools/security/gnupg/1compat.nix
blob: 371a7ca67afde1a4beec676540d234dd9faa85ef (plain) (tree)
1
2
3
4
5
6
7
8
9
10


                                          
                                         

                                                 
                         
                                      

                           

                                                        









                                                                                       
     
 


                                              
                  
    
 
{ stdenv, gnupg, coreutils, writeScript }:

stdenv.mkDerivation {
  name = "gnupg1compat-${gnupg.version}";

  builder = writeScript "gnupg1compat-builder" ''
    PATH=${coreutils}/bin
    # First symlink all top-level dirs
    mkdir -p $out
    ln -s "${gnupg}/"* $out

    # Replace bin with directory and symlink it contents
    rm $out/bin
    mkdir -p $out/bin
    ln -s "${gnupg}/bin/"* $out/bin

    # Add symlinks for any executables that end in 2 and lack any non-*2 version
    for f in $out/bin/*2; do
      [[ -x $f ]] || continue # ignore failed globs and non-executable files
      [[ -e ''${f%2} ]] && continue # ignore commands that already have non-*2 versions
      ln -s -- "''${f##*/}" "''${f%2}"
    done
  '';

  meta = gnupg.meta // {
    description = gnupg.meta.description +
      " with symbolic links for gpg and gpgv";
    priority = -1;
  };
}