summary refs log tree commit diff
path: root/modules/services/networking/gnunet.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-10-12 16:36:19 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-10-12 16:36:19 +0000
commite91d882a946fc736f62235296e77c139cee7d9b3 (patch)
treee220488319f0cc28aafb01ca26809429eeaf7f82 /modules/services/networking/gnunet.nix
parent4a78ef25e73da292d060a2afde0c00980a22b2ac (diff)
downloadnixpkgs-e91d882a946fc736f62235296e77c139cee7d9b3.tar
nixpkgs-e91d882a946fc736f62235296e77c139cee7d9b3.tar.gz
nixpkgs-e91d882a946fc736f62235296e77c139cee7d9b3.tar.bz2
nixpkgs-e91d882a946fc736f62235296e77c139cee7d9b3.tar.lz
nixpkgs-e91d882a946fc736f62235296e77c139cee7d9b3.tar.xz
nixpkgs-e91d882a946fc736f62235296e77c139cee7d9b3.tar.zst
nixpkgs-e91d882a946fc736f62235296e77c139cee7d9b3.zip
* Converted modules that were still using the old (concrete syntax)
  style of declaring Upstart jobs.  While at it, converted them to the
  current NixOS module style and improved some option descriptions.
  Hopefully I didn't break too much :-)

svn path=/nixos/trunk/; revision=17761
Diffstat (limited to 'modules/services/networking/gnunet.nix')
-rw-r--r--modules/services/networking/gnunet.nix336
1 files changed, 168 insertions, 168 deletions
diff --git a/modules/services/networking/gnunet.nix b/modules/services/networking/gnunet.nix
index 57e3b3d8c96..05956f74612 100644
--- a/modules/services/networking/gnunet.nix
+++ b/modules/services/networking/gnunet.nix
@@ -1,218 +1,218 @@
-{pkgs, config, ...}:
+{ config, pkgs, ... }:
+
+with pkgs.lib;
 
-###### interface
 let
-  inherit (pkgs.lib) mkOption mkIf;
+
+  cfg = config.services.gnunet;
+
+  configFile = with cfg; pkgs.writeText "gnunetd.conf"
+    ''
+      [PATHS]
+      GNUNETD_HOME = ${home}
+
+      [GNUNETD]
+      HOSTLISTURL = ${lib.concatStringsSep " " hostLists}
+      APPLICATIONS = ${lib.concatStringsSep " " applications}
+      TRANSPORTS = ${lib.concatStringsSep " " transports}
+
+      [LOAD]
+      MAXNETDOWNBPSTOTAL = ${toString load.maxNetDownBandwidth}
+      MAXNETUPBPSTOTAL = ${toString load.maxNetUpBandwidth}
+      HARDUPLIMIT = ${toString load.hardNetUpBandwidth}
+      MAXCPULOAD = ${toString load.maxCPULoad}
+      INTERFACES = ${lib.concatStringsSep " " load.interfaces}
+
+      [FS]
+      QUOTA = ${toString fileSharing.quota}
+      ACTIVEMIGRATION = ${if fileSharing.activeMigration then "YES" else "NO"}
+
+      [MODULES]
+      sqstore = sqstore_sqlite
+      dstore = dstore_sqlite
+      topology = topology_default
+
+      ${extraOptions}
+    '';
+
+in
+
+{
+
+  ###### interface
 
   options = {
-    services = {
-      gnunet = {
+  
+    services.gnunet = {
       
-        enable = mkOption {
-          default = false;
-          description = ''
-            Whether to run the GNUnet daemon.  GNUnet is GNU's anonymous
-            peer-to-peer communication and file sharing framework.
-          '';
-        };
+      enable = mkOption {
+        default = false;
+        description = ''
+          Whether to run the GNUnet daemon.  GNUnet is GNU's anonymous
+          peer-to-peer communication and file sharing framework.
+        '';
+      };
 
-        home = mkOption {
-          default = "/var/lib/gnunet";
+      home = mkOption {
+        default = "/var/lib/gnunet";
+        description = ''
+          Directory where the GNUnet daemon will store its data.
+        '';
+      };
+
+      debug = mkOption {
+        default = false;
+        description = ''
+          When true, run in debug mode; gnunetd will not daemonize and
+          error messages will be written to stderr instead of a
+          logfile.
+        '';
+      };
+
+      logLevel = mkOption {
+        default = "ERROR";
+        example = "INFO";
+        description = ''
+          Log level of the deamon (see `gnunetd(1)' for details).
+        '';
+      };
+
+      hostLists = mkOption {
+        default = [
+          "http://gnunet.org/hostlist.php"
+          "http://gnunet.mine.nu:8081/hostlist"
+          "http://vserver1236.vserver-on.de/hostlist-074"
+        ];
+        description = ''
+          URLs of host lists.
+        '';
+      };
+
+      applications = mkOption {
+        default = [ "advertising" "getoption" "fs" "stats" "traffic" ];
+        example = [ "chat" "fs" ];
+        description = ''
+          List of GNUnet applications supported by the daemon.  Note that
+          `fs', which means "file sharing", is probably the one you want.
+        '';
+      };
+
+      transports = mkOption {
+        default = [ "udp" "tcp" "http" "nat" ];
+        example = [ "smtp" "http" ];
+        description = ''
+          List of transport methods used by the server.
+        '';
+      };
+
+      fileSharing = {
+        quota = mkOption {
+          default = 1024;
           description = ''
-            Directory where the GNUnet daemon will store its data.
+            Maximum file system usage (in MiB) for file sharing.
           '';
         };
 
-        debug = mkOption {
+        activeMigration = mkOption {
           default = false;
           description = ''
-            When true, run in debug mode; gnunetd will not daemonize and
-            error messages will be written to stderr instead of a
-            logfile.
+            Whether to allow active migration of content originating
+            from other nodes.
           '';
         };
+      };
 
-        logLevel = mkOption {
-          default = "ERROR";
-          example = "INFO";
+      load = {
+        maxNetDownBandwidth = mkOption {
+          default = 50000;
           description = ''
-            Log level of the deamon (see `gnunetd(1)' for details).
+            Maximum bandwidth usage (in bits per second) for GNUnet
+            when downloading data.
           '';
         };
 
-        hostLists = mkOption {
-          default = [
-            "http://gnunet.org/hostlist.php"
-            "http://gnunet.mine.nu:8081/hostlist"
-            "http://vserver1236.vserver-on.de/hostlist-074"
-          ];
+        maxNetUpBandwidth = mkOption {
+          default = 50000;
           description = ''
-            URLs of host lists.
+            Maximum bandwidth usage (in bits per second) for GNUnet
+            when downloading data.
           '';
         };
 
-
-        applications = mkOption {
-          default = [ "advertising" "getoption" "fs" "stats" "traffic" ];
-          example = [ "chat" "fs" ];
+        hardNetUpBandwidth = mkOption {
+          default = 0;
           description = ''
-            List of GNUnet applications supported by the daemon.  Note that
-            `fs', which means "file sharing", is probably the one you want.
+            Hard bandwidth limit (in bits per second) when uploading
+            data.
           '';
         };
 
-        transports = mkOption {
-          default = [ "udp" "tcp" "http" "nat" ];
-          example = [ "smtp" "http" ];
+        maxCPULoad = mkOption {
+          default = 100;
           description = ''
-            List of transport methods used by the server.
+            Maximum CPU load (percentage) authorized for the GNUnet
+            daemon.
           '';
         };
 
-        fileSharing = {
-          quota = mkOption {
-            default = 1024;
-            description = ''
-              Maximum file system usage (in MiB) for file sharing.
-            '';
-          };
-
-          activeMigration = mkOption {
-            default = false;
-            description = ''
-              Whether to allow active migration of content originating
-              from other nodes.
-            '';
-          };
-        };
-
-        load = {
-          maxNetDownBandwidth = mkOption {
-            default = 50000;
-            description = ''
-              Maximum bandwidth usage (in bits per second) for GNUnet
-              when downloading data.
-            '';
-          };
-
-          maxNetUpBandwidth = mkOption {
-            default = 50000;
-            description = ''
-              Maximum bandwidth usage (in bits per second) for GNUnet
-              when downloading data.
-            '';
-          };
-
-          hardNetUpBandwidth = mkOption {
-            default = 0;
-            description = ''
-              Hard bandwidth limit (in bits per second) when uploading
-              data.
-            '';
-          };
-
-          maxCPULoad = mkOption {
-            default = 100;
-            description = ''
-              Maximum CPU load (percentage) authorized for the GNUnet
-              daemon.
-            '';
-          };
-
-          interfaces = mkOption {
-            default = [ "eth0" ];
-            example = [ "wlan0" "eth1" ];
-            description = ''
-              List of network interfaces to use.
-            '';
-          };
-        };
-
-        extraOptions = mkOption {
-          default = "";
-          example = ''
-            [NETWORK]
-            INTERFACE = eth3
-          '';
+        interfaces = mkOption {
+          default = [ "eth0" ];
+          example = [ "wlan0" "eth1" ];
           description = ''
-            Additional options that will be copied verbatim in `gnunetd.conf'.
-            See `gnunetd.conf(5)' for details.
+            List of network interfaces to use.
           '';
         };
       };
+
+      extraOptions = mkOption {
+        default = "";
+        example = ''
+          [NETWORK]
+          INTERFACE = eth3
+        '';
+        description = ''
+          Additional options that will be copied verbatim in `gnunetd.conf'.
+          See `gnunetd.conf(5)' for details.
+        '';
+      };
     };
+
   };
-in
 
-###### implementation
 
-mkIf config.services.gnunet.enable {
-  require = [
-    options
-  ];
+  ###### implementation
+
+  config = mkIf config.services.gnunet.enable {
 
-  users = {
-    extraUsers = [
+    users.extraUsers = singleton
       { name = "gnunetd";
         uid = config.ids.uids.gnunetd;
         description = "GNUnet Daemon User";
         home = "/var/empty";
-      }
-    ];
-  };
+      };
+
+    jobAttrs.gnunetd =
+      { description = "The GNUnet Daemon";
+
+        startOn = "network-interfaces/started";
+        stopOn = "network-interfaces/stop";
 
-  services = {
-    extraJobs = [{
-        name = "gnunetd";
-
-        job =
-          with config.services.gnunet;
-          let 
-            inherit (pkgs) lib gnunet;
-            configFile = pkgs.writeText "gnunetd.conf" ''
-              [PATHS]
-              GNUNETD_HOME = ${home}
-
-              [GNUNETD]
-              HOSTLISTURL = ${lib.concatStringsSep " " hostLists}
-              APPLICATIONS = ${lib.concatStringsSep " " applications}
-              TRANSPORTS = ${lib.concatStringsSep " " transports}
-
-              [LOAD]
-              MAXNETDOWNBPSTOTAL = ${toString load.maxNetDownBandwidth}
-              MAXNETUPBPSTOTAL = ${toString load.maxNetUpBandwidth}
-              HARDUPLIMIT = ${toString load.hardNetUpBandwidth}
-              MAXCPULOAD = ${toString load.maxCPULoad}
-              INTERFACES = ${lib.concatStringsSep " " load.interfaces}
-
-              [FS]
-              QUOTA = ${toString fileSharing.quota}
-              ACTIVEMIGRATION = ${if fileSharing.activeMigration then "YES" else "NO"}
-
-              [MODULES]
-              sqstore = sqstore_sqlite
-              dstore = dstore_sqlite
-              topology = topology_default
-
-              ${extraOptions}
-            '';
-            in ''
-            description "The GNUnet Daemon"
-
-            start on network-interfaces/started
-            stop on network-interfaces/stop
-
-            start script
-                test -d "${home}" || \
-                ( mkdir -m 755 -p "${home}" && chown -R gnunetd:users "${home}")
-            end script
-
-            respawn ${gnunet}/bin/gnunetd                   \
+        preStart =
+          ''
+            test -d "${cfg.home}" || \
+              ( mkdir -m 755 -p "${cfg.home}" && chown -R gnunetd:users "${cfg.home}")
+          '';
+
+        exec =
+          ''
+            respawn ${pkgs.gnunet}/bin/gnunetd              \
               ${if debug then "--debug" else "" }           \
               --user="gnunetd"                              \
               --config="${configFile}"                      \
-              --log="${logLevel}"
-            '';
-    }];
+              --log="${cfg.logLevel}"
+          '';
+      };
+
   };
+
 }