about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix b/nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix
new file mode 100644
index 000000000000..1de1edfa8e11
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/uchiwa/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, buildBowerComponents, buildGoPackage, makeWrapper }:
+
+let
+  inherit (import ./src.nix) version sha256;
+  owner = "sensu";
+  repo = "uchiwa";
+
+  src = fetchFromGitHub {
+    inherit owner repo sha256;
+    rev    = "${version}";
+  };
+
+  backend = buildGoPackage {
+    name = "uchiwa-backend-${version}";
+    goPackagePath = "github.com/${owner}/${repo}";
+    inherit src;
+    postInstall = ''
+      mkdir $out
+      cp go/src/github.com/sensu/uchiwa/public/index.html $out/
+    '';
+  };
+
+  frontend = buildBowerComponents {
+    name = "uchiwa-frontend-${version}";
+    generated = ./bower-packages.nix;
+    inherit src;
+  };
+
+in stdenv.mkDerivation rec {
+  name = "uchiwa-${version}";
+
+  inherit src;
+
+  buildInputs = [ makeWrapper ];
+
+  buildCommand = ''
+    mkdir -p $out/bin $out/public
+    makeWrapper ${backend.bin}/bin/uchiwa $out/bin/uchiwa \
+      --add-flags "-p $out/public"
+    ln -s ${backend.out}/index.html $out/public/index.html
+    ln -s ${frontend.out}/bower_components $out/public/bower_components
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Dashboard for the sensu monitoring framework";
+    homepage    = http://sensuapp.org/;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms   = platforms.unix;
+  };
+}