summary refs log tree commit diff
path: root/modules/programs/blcr.nix
diff options
context:
space:
mode:
authorMarco Maggesi <maggesi@math.unifi.it>2010-04-15 12:11:33 +0000
committerMarco Maggesi <maggesi@math.unifi.it>2010-04-15 12:11:33 +0000
commit37746e4fb3fa0a2b320c0e925f4da26e9849b2ec (patch)
treeea40974631c33793d61dd144c33b11f39d3131cd /modules/programs/blcr.nix
parentb42c2ecc13e5b20a2c91fe9cdff5899f0124b2c8 (diff)
downloadnixpkgs-37746e4fb3fa0a2b320c0e925f4da26e9849b2ec.tar
nixpkgs-37746e4fb3fa0a2b320c0e925f4da26e9849b2ec.tar.gz
nixpkgs-37746e4fb3fa0a2b320c0e925f4da26e9849b2ec.tar.bz2
nixpkgs-37746e4fb3fa0a2b320c0e925f4da26e9849b2ec.tar.lz
nixpkgs-37746e4fb3fa0a2b320c0e925f4da26e9849b2ec.tar.xz
nixpkgs-37746e4fb3fa0a2b320c0e925f4da26e9849b2ec.tar.zst
nixpkgs-37746e4fb3fa0a2b320c0e925f4da26e9849b2ec.zip
Add support for BLCR: modules/programs/blcr.nix
svn path=/nixos/trunk/; revision=21092
Diffstat (limited to 'modules/programs/blcr.nix')
-rw-r--r--modules/programs/blcr.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/modules/programs/blcr.nix b/modules/programs/blcr.nix
new file mode 100644
index 00000000000..084d7c5753a
--- /dev/null
+++ b/modules/programs/blcr.nix
@@ -0,0 +1,59 @@
+{ config, pkgs, ... }:
+
+let
+  inherit (pkgs.lib) mkOption mkIf;
+
+  cfg = config.environment.blcr;
+
+  blcrPkg = config.boot.kernelPackages.blcr;
+
+  insmod = "${pkgs.module_init_tools}/sbin/insmod";
+  rmmod  = "${pkgs.module_init_tools}/sbin/rmmod";
+
+  modulesDir      = "${blcrPkg}/lib/modules/${pkgs.linux.version}";
+  blcr_imports_ko = "${modulesDir}/blcr_imports.ko";
+  blcr_ko         = "${modulesDir}/blcr.ko";
+in
+
+{
+  ###### interface
+
+  options = {
+    environment.blcr.enable = mkOption {
+      default = false;
+      description =
+        "Wheter to enable support for the BLCR checkpoingint tool.";
+    };
+
+    environment.blcr.autorun = mkOption {
+      default = true;
+      description =
+        "Whether to load BLCR kernel modules automatically at boot.";
+    };
+  };
+
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ blcrPkg ];
+
+    jobs.openafsClient = {
+        name        = "blcr";
+        description = "Loads BLCR kernel modules";
+	task        = true;
+
+        startOn = if cfg.autorun then "started udev" else null;
+        stopOn  = "shutdown";
+
+	preStart = ''
+          ${insmod} ${blcr_imports_ko}
+          ${insmod} ${blcr_ko}
+	'';
+	postStop = ''
+          ${rmmod} ${blcr_ko}
+          ${rmmod} ${blcr_imports_ko}
+	'';
+      };
+  };
+}