37 lines
841 B
Nix
37 lines
841 B
Nix
{createManagedProcess, lib, subversion, runtimeDir, forceDisableUserChange}:
|
|
|
|
{ instanceSuffix ? ""
|
|
, instanceName ? "svnserve${instanceSuffix}"
|
|
, port ? 3690
|
|
, svnBaseDir
|
|
, svnGroup
|
|
, postInstall ? ""
|
|
}:
|
|
|
|
let
|
|
pidFile = "${runtimeDir}/${instanceName}.pid";
|
|
in
|
|
createManagedProcess {
|
|
inherit instanceName postInstall;
|
|
|
|
initialize = ''
|
|
mkdir -p ${svnBaseDir}
|
|
${lib.optionalString (!forceDisableUserChange) ''
|
|
chgrp ${svnGroup} ${svnBaseDir}
|
|
''}
|
|
'';
|
|
process = "${subversion.out}/bin/svnserve";
|
|
args = [ "-r" svnBaseDir "--listen-port" port "--daemon" ];
|
|
foregroundProcessExtraArgs = ["--foreground" ];
|
|
daemonExtraArgs = [ "--pid-file" pidFile ];
|
|
|
|
overrides = {
|
|
synit = {
|
|
depends-on = [ "<service-state <milestone network> up>>" ];
|
|
};
|
|
sysvinit = {
|
|
runlevels = [ 3 4 5 ];
|
|
};
|
|
};
|
|
}
|