{ 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 ]; }; }