summary refs log tree commit diff
path: root/pkgs/servers/monitoring/prometheus/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/monitoring/prometheus/default.nix')
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix80
1 files changed, 47 insertions, 33 deletions
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index 46c02c6bb95d..86218a57284f 100644
--- a/pkgs/servers/monitoring/prometheus/default.nix
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -1,42 +1,56 @@
 { stdenv, go, buildGoPackage, fetchFromGitHub }:
 
-buildGoPackage rec {
-  name = "prometheus-${version}";
-  version = "1.8.1";
-  rev = "v${version}";
-
+let
   goPackagePath = "github.com/prometheus/prometheus";
 
-  src = fetchFromGitHub {
-    inherit rev;
-    owner = "prometheus";
-    repo = "prometheus";
+  generic = { version, sha256, ... }@attrs:
+    let attrs' = builtins.removeAttrs attrs ["version" "sha256"]; in
+      buildGoPackage ({
+        name = "prometheus-${version}";
+
+        inherit goPackagePath;
+
+        src = fetchFromGitHub {
+          rev = "v${version}";
+          owner = "prometheus";
+          repo = "prometheus";
+          inherit sha256;
+        };
+
+        docheck = true;
+
+        buildFlagsArray = let t = "${goPackagePath}/version"; in ''
+          -ldflags=
+             -X ${t}.Version=${version}
+             -X ${t}.Revision=unknown
+             -X ${t}.Branch=unknown
+             -X ${t}.BuildUser=nix@nixpkgs
+             -X ${t}.BuildDate=unknown
+             -X ${t}.GoVersion=${stdenv.lib.getVersion go}
+        '';
+
+        preInstall = ''
+          mkdir -p "$bin/share/doc/prometheus" "$bin/etc/prometheus"
+          cp -a $src/documentation/* $bin/share/doc/prometheus
+          cp -a $src/console_libraries $src/consoles $bin/etc/prometheus
+        '';
+
+        meta = with stdenv.lib; {
+          description = "Service monitoring system and time series database";
+          homepage = https://prometheus.io;
+          license = licenses.asl20;
+          maintainers = with maintainers; [ benley fpletz ];
+          platforms = platforms.unix;
+        };
+    } // attrs');
+in rec {
+  prometheus_1 = generic {
+    version = "1.8.1";
     sha256 = "07xvpjhhxc0r73qfmkvf94zhv19zv76privw6blg35k5nxcnj7j4";
   };
 
-  docheck = true;
-
-  buildFlagsArray = let t = "${goPackagePath}/version"; in ''
-    -ldflags=
-       -X ${t}.Version=${version}
-       -X ${t}.Revision=unknown
-       -X ${t}.Branch=unknown
-       -X ${t}.BuildUser=nix@nixpkgs
-       -X ${t}.BuildDate=unknown
-       -X ${t}.GoVersion=${stdenv.lib.getVersion go}
-  '';
-
-  preInstall = ''
-    mkdir -p "$bin/share/doc/prometheus" "$bin/etc/prometheus"
-    cp -a $src/documentation/* $bin/share/doc/prometheus
-    cp -a $src/console_libraries $src/consoles $bin/etc/prometheus
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Service monitoring system and time series database";
-    homepage = https://prometheus.io;
-    license = licenses.asl20;
-    maintainers = with maintainers; [ benley fpletz ];
-    platforms = platforms.unix;
+  prometheus_2 = generic {
+    version = "2.1.0";
+    sha256 = "01pbqfp43qrqcgyidyg2lw9jnjdrv140vnmqmm49z0vhlkxkwlvw";
   };
 }