From 10bdceaaadb442d345ea450f53ee8e5b92d56306 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 24 Apr 2008 11:42:50 +0000 Subject: [PATCH] * Allow disambiguation between the admin scripts of multiple Subversion service instances. svn path=/nixos/trunk/; revision=11701 --- upstart-jobs/apache-httpd/subversion.nix | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/upstart-jobs/apache-httpd/subversion.nix b/upstart-jobs/apache-httpd/subversion.nix index 753f7892d67..e4c3692df94 100644 --- a/upstart-jobs/apache-httpd/subversion.nix +++ b/upstart-jobs/apache-httpd/subversion.nix @@ -11,7 +11,8 @@ let distsDir = "${config.dataDir}/dist"; tmpDir = "${config.dataDir}/tmp"; logDir = "${config.dataDir}/log"; - postCommitHook = "/var/run/current-system/sw/bin/svn-server-post-commit-hook"; + idString = if config.id == "" then "" else "${config.id}-"; + postCommitHook = "/var/run/current-system/sw/bin/svn-server-${idString}post-commit-hook"; fsType = "fsfs"; adminAddr = serverInfo.adminAddr; @@ -64,6 +65,11 @@ let postInstall = '' $perl -c -T $out/cgi-bin/repoman.pl $perl -c $out/bin/svn-server-create-user.pl + if test -n "${config.id}"; then + for i in $(cd $out/bin && echo *); do + mv "$out/bin/$i" "$out/bin/$(echo $i | sed s^svn-server-^svn-server-${config.id}-^)" + done + fi ''; }; @@ -341,11 +347,23 @@ in { extraPath = [scripts]; - startupScript = "${scripts}/bin/svn-server-startup-hook.sh"; + startupScript = "${scripts}/bin/svn-server-${idString}startup-hook.sh"; options = { + id = mkOption { + default = ""; + example = "test"; + description = " + A unique identifier necessary to keep multiple Subversion server + instances on the same machine apart. This is used to + disambiguate the administrative scripts, which get names like + svn-server--delete-repo.pl. In particular it keeps + the post-commit hooks of different instances apart. + "; + }; + urlPrefix = mkOption { default = "/subversion"; description = "