88 lines
1.7 KiB
Nix
88 lines
1.7 KiB
Nix
{
|
|
fetchurl,
|
|
lib,
|
|
stdenv,
|
|
makeWrapper,
|
|
perl,
|
|
perlPackages,
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "dirvish";
|
|
version = "1.2.1";
|
|
|
|
src = fetchurl {
|
|
url = "http://dirvish.org/dirvish${version}.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 lib; {
|
|
description = "Fast, disk based, rotating network backup system";
|
|
homepage = "http://dirvish.org/";
|
|
license = lib.licenses.osl2;
|
|
platforms = platforms.linux;
|
|
maintainers = [ maintainers.winpat ];
|
|
};
|
|
}
|