about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tools/nixery/default.nix43
-rw-r--r--tools/nixery/go-deps.nix111
-rw-r--r--tools/nixery/static/index.html (renamed from tools/nixery/index.html)0
3 files changed, 154 insertions, 0 deletions
diff --git a/tools/nixery/default.nix b/tools/nixery/default.nix
new file mode 100644
index 000000000000..19e7df963a50
--- /dev/null
+++ b/tools/nixery/default.nix
@@ -0,0 +1,43 @@
+{ pkgs ? import <nixpkgs> {} }:
+
+with pkgs;
+
+rec {
+  # Go implementation of the Nixery server which implements the
+  # container registry interface.
+  #
+  # Users will usually not want to use this directly, instead see the
+  # 'nixery' derivation below, which automatically includes runtime
+  # data dependencies.
+  nixery-server = buildGoPackage {
+    name = "nixery-server";
+
+    # Technically people should not be building Nixery through 'go get'
+    # or similar (as other required files will not be included), but
+    # buildGoPackage requires a package path.
+    goPackagePath = "github.com/google/nixery";
+
+    goDeps = ./go-deps.nix;
+    src    = ./.;
+
+    meta = {
+      description = "Container image build serving Nix-backed images";
+      homepage    = "https://github.com/google/nixery";
+      license     = lib.licenses.ascl20;
+      maintainers = [ lib.maintainers.tazjin ];
+    };
+  };
+
+  # Nix expression (unimported!) which is used by Nixery to build
+  # container images.
+  nixery-builder = runCommand "build-registry-image.nix" {} ''
+    cat ${./build-registry-image.nix} > $out
+  '';
+
+  # Static files to serve on the Nixery index. This is used primarily
+  # for the demo instance running at nixery.appspot.com and provides
+  # some background information for what Nixery is.
+  nixery-static = runCommand "nixery-static" {} ''
+    cp -r ${./static} $out
+  '';
+}
diff --git a/tools/nixery/go-deps.nix b/tools/nixery/go-deps.nix
new file mode 100644
index 000000000000..57d9ecd64931
--- /dev/null
+++ b/tools/nixery/go-deps.nix
@@ -0,0 +1,111 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+  {
+    goPackagePath = "cloud.google.com/go";
+    fetch = {
+      type = "git";
+      url = "https://code.googlesource.com/gocloud";
+      rev = "edd0968ab5054ee810843a77774d81069989494b";
+      sha256 = "1mh8i72h6a1z9lp4cy9bwa2j87bm905zcsvmqwskdqi8z58cif4a";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "6c65a5562fc06764971b7c5d05c76c75e84bdbf7";
+      sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
+    };
+  }
+  {
+    goPackagePath = "github.com/googleapis/gax-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/gax-go";
+      rev = "bd5b16380fd03dc758d11cef74ba2e3bc8b0e8c2";
+      sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx";
+    };
+  }
+  {
+    goPackagePath = "github.com/hashicorp/golang-lru";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hashicorp/golang-lru";
+      rev = "59383c442f7d7b190497e9bb8fc17a48d06cd03f";
+      sha256 = "0yzwl592aa32vfy73pl7wdc21855w17zssrp85ckw2nisky8rg9c";
+    };
+  }
+  {
+    goPackagePath = "go.opencensus.io";
+    fetch = {
+      type = "git";
+      url = "https://github.com/census-instrumentation/opencensus-go";
+      rev = "b4a14686f0a98096416fe1b4cb848e384fb2b22b";
+      sha256 = "1aidyp301v5ngwsnnc8v1s09vvbsnch1jc4vd615f7qv77r9s7dn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "da137c7871d730100384dbcf36e6f8fa493aef5b";
+      sha256 = "1qsiyr3irmb6ii06hivm9p2c7wqyxczms1a9v1ss5698yjr3fg47";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/oauth2";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/oauth2";
+      rev = "0f29369cfe4552d0e4bcddc57cc75f4d7e672a33";
+      sha256 = "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "fae7ac547cb717d141c433a2a173315e216b64c4";
+      sha256 = "11pl0dycm5d8ar7g1l1w5q2cx0lms8i15n8mxhilhkdd2xpmh8f0";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "342b2e1fbaa52c93f31447ad2c6abc048c63e475";
+      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/api";
+    fetch = {
+      type = "git";
+      url = "https://code.googlesource.com/google-api-go-client";
+      rev = "069bea57b1be6ad0671a49ea7a1128025a22b73f";
+      sha256 = "19q2b610lkf3z3y9hn6rf11dd78xr9q4340mdyri7kbijlj2r44q";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/genproto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-genproto";
+      rev = "c506a9f9061087022822e8da603a52fc387115a8";
+      sha256 = "03hh80aqi58dqi5ykj4shk3chwkzrgq2f3k6qs5qhgvmcy79y2py";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/grpc";
+    fetch = {
+      type = "git";
+      url = "https://github.com/grpc/grpc-go";
+      rev = "977142214c45640483838b8672a43c46f89f90cb";
+      sha256 = "05wig23l2sil3bfdv19gq62sya7hsabqj9l8pzr1sm57qsvj218d";
+    };
+  }
+]
diff --git a/tools/nixery/index.html b/tools/nixery/static/index.html
index ebec9968c0c9..ebec9968c0c9 100644
--- a/tools/nixery/index.html
+++ b/tools/nixery/static/index.html