about summary refs log tree commit diff
path: root/tools/nixery/default.nix
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@google.com>2019-10-05T21·33+0100
committerVincent Ambo <github@tazj.in>2019-10-06T22·05+0100
commit6912658c72291caefd7c7ea6312a35c3a686cf61 (patch)
tree47f41a4cb8ee9d1e7f3eda998471f1578d557e2d /tools/nixery/default.nix
parent95abb1bcde75253aa35669eed26f734d02c6a870 (diff)
feat(server): Use hash of Nixery source as version
Uses a hash of Nixery's sources as the version displayed when Nixery
launches or logs an error. This makes it possible to distinguish
between errors logged from different versions.

The source hashes should be reproducible between different checkouts
of the same source tree.
Diffstat (limited to 'tools/nixery/default.nix')
-rw-r--r--tools/nixery/default.nix11
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/nixery/default.nix b/tools/nixery/default.nix
index c1a3c9f7dca5..20a5b50220e1 100644
--- a/tools/nixery/default.nix
+++ b/tools/nixery/default.nix
@@ -19,13 +19,22 @@
 with pkgs;
 
 rec {
+  # Hash of all Nixery sources - this is used as the Nixery version in
+  # builds to distinguish errors between deployed versions, see
+  # server/logs.go for details.
+  nixery-src-hash = pkgs.runCommand "nixery-src-hash" {} ''
+    echo ${./.} | grep -Eo '[a-z0-9]{32}' > $out
+  '';
+
   # 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 = callPackage ./server { };
+  nixery-server = callPackage ./server {
+    srcHash = nixery-src-hash;
+  };
 
   # Implementation of the Nix image building logic
   nixery-build-image = import ./build-image { inherit pkgs; };