nixpkgs/pkgs/tools/backup/dirvish/default.nix
2019-02-10 16:19:38 +01:00

63 lines
1.7 KiB
Nix

{ fetchurl, stdenv, makeWrapper, perl, rsync, perlPackages }:
stdenv.mkDerivation rec {
name = "dirvish-1.2.1";
src = fetchurl {
url = "http://dirvish.org/${name}.tgz";
sha256 = "6b7f29c3541448db3d317607bda3eb9bac9fb3c51f970611ffe27e9d63507dcd";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ perl ] ++ (with perlPackages; [ GetoptLong TimeParseDate TimePeriod ]);
executables = [ "dirvish" "dirvish-runall" "dirvish-expire" "dirvish-locate" ];
manpages = [ "dirvish.8" "dirvish-runall.8" "dirvish-expire.8" "dirvish-locate.8" "dirvish.conf.5" ];
buildPhase = ''
HEADER="#!${perl}/bin/perl
\$CONFDIR = \"/etc/dirvish\";
"
for executable in $executables; do
(
echo "$HEADER"
cat $executable.pl loadconfig.pl
) > $executable
chmod +x $executable
done
'';
installPhase = ''
mkdir -p $out/bin
cp --target-directory=$out/bin $executables
for manpage in $manpages; do
if [[ $manpage =~ \.([[:digit:]]+)$ ]]; then
section=''${BASH_REMATCH[1]}
mkdir -p $out/man/man$section
cp --target-directory=$out/man/man$section $manpage
else
echo "Couldn't determine man page section by filename"
exit 1
fi
done
'';
postFixup = ''
for executable in $executables; do
wrapProgram $out/bin/$executable \
--set PERL5LIB "$PERL5LIB"
done
'';
meta = with stdenv.lib; {
description = "Dirvish is a fast, disk based, rotating network backup system";
homepage = http://dirvish.org/;
license = stdenv.lib.licenses.osl2;
platforms = platforms.linux;
maintainers = [ maintainers.winpat ];
};
}