summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/monitoring/hdaps.nix22
-rw-r--r--pkgs/os-specific/linux/hdapsd/default.nix6
-rw-r--r--pkgs/os-specific/linux/hdapsd/postInstall.sh7
4 files changed, 34 insertions, 2 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 585da96c32e..c2bcc361c44 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -257,6 +257,7 @@
   ./services/monitoring/dd-agent.nix
   ./services/monitoring/grafana.nix
   ./services/monitoring/graphite.nix
+  ./services/monitoring/hdaps.nix
   ./services/monitoring/heapster.nix
   ./services/monitoring/longview.nix
   ./services/monitoring/monit.nix
diff --git a/nixos/modules/services/monitoring/hdaps.nix b/nixos/modules/services/monitoring/hdaps.nix
new file mode 100644
index 00000000000..be26c44e78d
--- /dev/null
+++ b/nixos/modules/services/monitoring/hdaps.nix
@@ -0,0 +1,22 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.hdapsd;
+  hdapsd = [ pkgs.hdapsd ];
+in
+{
+  options = {
+    services.hdapsd.enable = mkEnableOption
+      ''
+        Hard Drive Active Protection System Daemon,
+        devices are detected and managed automatically by udev and systemd
+      '';
+  };
+
+  config = mkIf cfg.enable {
+    services.udev.packages = hdapsd;
+    systemd.packages = hdapsd;
+  };
+}
diff --git a/pkgs/os-specific/linux/hdapsd/default.nix b/pkgs/os-specific/linux/hdapsd/default.nix
index 9f39cb56bf5..61c0c7b495d 100644
--- a/pkgs/os-specific/linux/hdapsd/default.nix
+++ b/pkgs/os-specific/linux/hdapsd/default.nix
@@ -2,13 +2,15 @@
 
 let version = "20141203"; in
 stdenv.mkDerivation rec {
-  name = "ldapsd-"+version;
+  name = "hdapsd-"+version;
 
   src = fetchurl {
     url = "https://github.com/evgeni/hdapsd/releases/download/${version}/hdapsd-${version}.tar.gz";
     sha256 = "0ppgrfabd0ivx9hyny3c3rv4rphjyxcdsd5svx5pgfai49mxnl36";
   };
 
+  postInstall = builtins.readFile ./postInstall.sh;
+
   meta = with stdenv.lib;
     { description = "Hard Drive Active Protection System Daemon";
       hompage = "http://hdaps.sf.net/";
@@ -16,4 +18,4 @@ stdenv.mkDerivation rec {
       platforms = platforms.linux;
       maintainers = [ maintainers.ehmry ];
     };
-}
\ No newline at end of file
+}
diff --git a/pkgs/os-specific/linux/hdapsd/postInstall.sh b/pkgs/os-specific/linux/hdapsd/postInstall.sh
new file mode 100644
index 00000000000..37867817bf6
--- /dev/null
+++ b/pkgs/os-specific/linux/hdapsd/postInstall.sh
@@ -0,0 +1,7 @@
+mkdir -p $out/lib/udev/rules.d $out/lib/systemd/system
+cp misc/hdapsd.rules $out/lib/udev/rules.d
+SBIN_REWRITE="s|@sbindir@|$out/bin|g"
+for i in misc/*.service.in
+do sed $SBIN_REWRITE "$i" > "$out/lib/systemd/system/$(basename ${i%.in})"
+done
+