36 lines
991 B
Nix
36 lines
991 B
Nix
{svnserveConstructorFun, lib, dysnomia}:
|
|
|
|
{ instanceSuffix ? "", instanceName ? "svnserve${instanceSuffix}"
|
|
, containerName ? "subversion-repository${instanceSuffix}"
|
|
, port ? 3690
|
|
, svnBaseDir
|
|
, svnGroup ? "root"
|
|
, type ? null
|
|
, properties ? {}
|
|
}:
|
|
|
|
let
|
|
pkg = svnserveConstructorFun {
|
|
inherit instanceName port svnBaseDir svnGroup;
|
|
postInstall = ''
|
|
# Add Dysnomia container configuration file for Subversion repositories
|
|
mkdir -p $out/etc/dysnomia/containers
|
|
cat > $out/etc/dysnomia/containers/${containerName} <<EOF
|
|
svnGroup=${svnGroup}
|
|
svnBaseDir=${svnBaseDir}
|
|
EOF
|
|
|
|
# Copy the Dysnomia module that manages a Subversion repository
|
|
mkdir -p $out/libexec/dysnomia
|
|
ln -s ${dysnomia}/libexec/dysnomia/subversion-repository $out/libexec/dysnomia
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
name = instanceName;
|
|
inherit pkg svnGroup svnBaseDir;
|
|
providesContainer = containerName;
|
|
} // lib.optionalAttrs (type != null) {
|
|
inherit type;
|
|
} // properties
|