summaryrefslogtreecommitdiff
path: root/nixos/sites/go-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/sites/go-packages.nix')
-rw-r--r--nixos/sites/go-packages.nix20
1 files changed, 20 insertions, 0 deletions
diff --git a/nixos/sites/go-packages.nix b/nixos/sites/go-packages.nix
new file mode 100644
index 0000000..639b4c5
--- /dev/null
+++ b/nixos/sites/go-packages.nix
@@ -0,0 +1,20 @@
+{ pkgs }:
+with pkgs.lib;
+
+let
+ mkLocation = virtualHost: module: url: {
+ name = "/${module}";
+ value = {
+ extraConfig = ''
+ if ($args = "go-get=1") {
+ add_header Content-Type text/html;
+ return 200 '<meta name="go-import" content="${virtualHost}/${module} git ${url}">';
+ }
+ return 302 ${url};
+ '';
+ };
+ };
+
+in { virtualHost, modules }: {
+ locations = listToAttrs (mapAttrsToList (mkLocation virtualHost) modules);
+}