37 lines
819 B
Nix

{ lib,
atool,
makeBinaryWrapper,
stdenvNoCC,
lzip,
plzip,
lzop,
lzma,
zip,
unzip,
arj,
rpm,
cpio,
p7zip,
unrar,
lha,
unfree ? false }:
let
wrappedPath = lib.makeBinPath ([lzip plzip lzop lzma zip unzip arj rpm cpio p7zip] ++ lib.optionals unfree [unrar lha]);
in
stdenvNoCC.mkDerivation {
name = "atool-wrapped";
phases = [ "installPhase" ];
nativeBuildInputs = [ makeBinaryWrapper ];
src = ./.;
installPhase = ''
makeBinaryWrapper "${atool}/bin/atool" "$out/bin/atool" \
--inherit-argv0 --prefix PATH : "${wrappedPath}"
for i in acat adiff als apack arepack aunpack ; do
ln -s $out/bin/atool $out/bin/$i
done
# i have no idea if this is the "right" way to do this
mkdir -p "$out/share"
ln -s "${atool}/share/man" "$out/share/man"
'';
}