diff --git a/upstart-jobs/apache-httpd/dist-manager.nix b/upstart-jobs/apache-httpd/dist-manager.nix index 543f075d17e6..e4a85cbe58c0 100644 --- a/upstart-jobs/apache-httpd/dist-manager.nix +++ b/upstart-jobs/apache-httpd/dist-manager.nix @@ -6,20 +6,42 @@ let urlPrefix = "/release"; distDir = "/tmp/dist"; - distConfDir = "/tmp/dist-conf"; + distPasswords = "/tmp/dist-conf/upload_passwords"; + + directoriesConf = pkgs.writeText "directories.conf" '' + nix ${distDir}/nix nix-upload + nix-cache ${distDir}/nix-cache nix-upload stratego-upload autobundle-upload swe-upload meta-environment-upload hut-upload + test ${distDir}/test test-upload nix-upload + test-cache ${distDir}/test-cache test-upload nix-upload + stratego ${distDir}/stratego stratego-upload + autobundle ${distDir}/autobundle autobundle-upload + courses ${distDir}/courses swe-upload + meta-environment ${distDir}/meta-environment meta-environment-upload + hut ${distDir}/hut hut-upload + ''; + + uploaderIPs = [ + "127.0.0.1" + "10.0.0.0/255.0.0.0" + "131.211.0.0/255.255.0.0" # *.cs.uu.nl + "130.145.0.0/255.255.0.0" # philips.com + "130.161.158.181" # TUD supervisor + ]; staticFiles = substituteInAll { - name = "svn-server-scripts"; + name = "dist-manager-files"; src = pkgs.lib.cleanSource ../../../services/dist-manager/files; perl = "${pkgs.perl}/bin/perl"; inherit (serverInfo) canonicalName; - inherit urlPrefix; + inherit urlPrefix directoriesConf; + + defaultPath = "${pkgs.coreutils}/bin:${pkgs.findutils}/bin"; + + saxon8 = pkgs.saxonb; - defaultPath = ""; # !!! - # Do a syntax check on the generated file. postInstall = '' $perl -c $out/cgi-bin/create-dist.pl # !!! should use -T @@ -45,29 +67,21 @@ in { Alias ${urlPrefix}/css ${staticFiles}/css - ScriptAlias ${urlPrefix}/cgi-bin ${staticFiles}/cgi-bin - AllowOverride FileInfo AuthConfig Limit - Options MultiViews SymLinksIfOwnerMatch ExecCGI + Options 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 + ${pkgs.lib.concatMapStrings (ip: "Allow from ${ip}\n") uploaderIPs} Require valid-user AuthType Basic AuthName "Nix Upload" - AuthUserFile ${distConfDir}/upload_passwords + AuthUserFile ${distPasswords} - Alias ${urlPrefix} ${distDir}/