{config, pkgs, serverInfo}: let inherit (pkgs.lib) mkOption; urlPrefix = "/release"; distDir = "/tmp/dist"; distConfDir = "/tmp/dist-conf"; staticFiles = substituteInAll { name = "svn-server-scripts"; src = pkgs.lib.cleanSource ../../../services/dist-manager/files; perl = "${pkgs.perl}/bin/perl"; inherit (serverInfo) canonicalName; inherit urlPrefix; defaultPath = ""; # !!! # Do a syntax check on the generated file. postInstall = '' $perl -c $out/cgi-bin/create-dist.pl # !!! should use -T ''; }; # !!! cut&paste substituteInAll = args: pkgs.stdenvUsingSetupNew2.mkDerivation ({ buildCommand = '' ensureDir $out cp -prd $src/* $out chmod -R u+w $out find $out -type f -print | while read fn; do substituteAll $fn $fn done eval "$postInstall" ''; } // args); # */ in { extraConfig = '' Alias ${urlPrefix}/css ${staticFiles}/css ScriptAlias ${urlPrefix}/cgi-bin ${staticFiles}/cgi-bin AllowOverride FileInfo AuthConfig Limit Options MultiViews SymLinksIfOwnerMatch ExecCGI SetHandler cgi-script # !!! this shouldn't be here Order allow,deny Allow from 131.211.0.0/255.255.0.0 # *.cs.uu.nl Allow from 130.145.0.0/255.255.0.0 # philips.com Allow from 130.161.158.181 # TUD supervisor Allow from 192.168.1.0/24 # TUD builders Allow from 127.0.0.1 Require valid-user AuthType Basic AuthName "Nix Upload" AuthUserFile ${distConfDir}/upload_passwords Alias ${urlPrefix} ${distDir}/ Options +Indexes RewriteEngine on RewriteRule ^${distDir}/(.*)/create-dist/(.*) ${urlPrefix}/cgi-bin/create-dist.pl/$1/$2 AddType application/nix-package .nixpkg AllowOverride FileInfo AuthConfig Limit Order allow,deny Allow from all ''; # !!! should not be needed extraModulesPre = []; extraModules = []; robotsEntries = ""; globalEnvVars = []; extraServerPath = []; extraPath = []; options = { }; }