[Nix-dev] Re: [Nix-commits] SVN commit: nix - 18431 - raskin - in nixos/trunk/modules: . services/networking

Eelco Dolstra e.dolstra at tudelft.nl
Wed Nov 18 16:03:23 CET 2009


Hi,

Michael Raskin wrote:

> --- nixos/trunk/modules/services/networking/gvpe.nix	                        (rev 0)
> +++ nixos/trunk/modules/services/networking/gvpe.nix	2009-11-18 14:54:37 UTC (rev 18431)
> @@ -0,0 +1,140 @@
> +# GNU Virtual Private Ethernet
> +
> +{config, pkgs, ...}: 

In order to make the expression more readable, could you include some empty
lines between definitions?  Like:

> +let 
> +  inherit (pkgs.lib) mkOption mkIf;
  <-- here
> +  cfg = config.services.gvpe;
  <-- here
> +  finalConfig = if cfg.configFile != null then 
> +    cfg.configFile
> +  else if cfg.configText != null then
> +    pkgs.writeTextFile {
> +      name = "gvpe.conf";
> +      text = cfg.configText;
> +    }
> +  else 
> +    throw "You must either specify contents of the config file or the config file itself for GVPE";
  <-- here
> +  ifupScript = if cfg.ipAddress == null || cfg.subnet == null then 
> +     throw "Specify IP address and subnet (with mask) for GVPE" 
> +   else if cfg.nodename == null then 
> +     throw "You must set node name for GVPE" 
> +   else
> +   (pkgs.writeTextFile { 
> +    name = "gvpe-if-up";
> +    text = ''
> +      #! /bin/sh
> +      
> +      export PATH=$PATH:${pkgs.iproute}/sbin
> +
> +      ip link set $IFNAME up
> +      ip address add ${cfg.ipAddress} dev $IFNAME
> +      ip route add ${cfg.subnet} dev $IFNAME
> +
> +      ${cfg.customIFSetup}
> +    '';
> +    executable = true;
> +  });
  <-- here
> +  exec = "${pkgs.gvpe}/sbin/gvpe -c /var/gvpe -D ${cfg.nodename} "
> +    + " ${cfg.nodename}.pid-file=/var/gvpe/gvpe.pid"
> +    + " ${cfg.nodename}.if-up=if-up"
> +    + " &> /var/log/gvpe";
  <-- here
> +  inherit (cfg) startOn stopOn;
  <-- here
> +in
> +
> +{
> +  options = {
> +    services.gvpe = {
> +      enable = mkOption {
> +        default = false;
> +        description = ''
> +          Whether to run gvpe
> +        '';
> +      };
> +      startOn = mkOption {
> +        default = "network-interfaces/started";

Upstart 0.6 should make this unnecessary, because we can let jobs depend on a
runlevel-like "networking" event that includes whatever services are needed
(such as gw6c).

> +        description = ''
> +          Condition to start GVPE
> +        '';
> +      };
> +      stopOn = mkOption {
> +        default = "network-interfaces/stop";
> +        description = ''
> +          Condition to stop GVPE
> +        '';
> +      };
> +      nodename = mkOption {
> +        default = null;
> +        description =''
> +          GVPE node name
> +        '';
> +      };
> +      configText = mkOption {
> +        default = null;
> +        example = ''
> +          tcp-port = 655
> +          udp-port = 655
> +          mtu = 1480
> +          ifname = vpn0
> +          
> +          node = alpha
> +          hostname = alpha.example.org
> +          connect = always
> +          enable-udp = true
> +          enable-tcp = true
> +          on alpha if-up = if-up-0
> +          on alpha pid-file = /var/gvpe/gvpe.pid
> +        '';
> +        description = ''
> +          GVPE config contents
> +        '';
> +      };
> +      configFile = mkOption {
> +        default = null;
> +        example = "/root/my-gvpe-conf";
> +        description = ''
> +          GVPE config file, if already present
> +        '';
> +      };
> +      ipAddress = mkOption {
> +        default = null;
> +        description = ''
> +          IP address to assign to GVPE interface
> +        '';
> +      };
> +      subnet = mkOption {
> +        default = null;
> +        example = "10.0.0.0/8";
> +        description = ''
> +          IP subnet assigned to GVPE network
> +        '';
> +      };
> +      customIFSetup = mkOption {
> +        default = "";
> +        description = ''
> +          Additional commands to apply in ifup script
> +        '';
> +      };
> +    };
> +  };
> +  config = mkIf cfg.enable 
> +  {

This should be:

  config = mkIf cfg.enable {

> +    jobs.gvpe = {
> +      description = "GNU Virtual Private Ethernet node";
> +      
> +      inherit startOn stopOn;
> +
> +      preStart = ''
> +        mkdir -p /var/gvpe
> +        mkdir -p /var/gvpe/pubkey
> +        chown root /var/gvpe
> +        chmod 700 /var/gvpe
> +        cp ${finalConfig} /var/gvpe/gvpe.conf
> +	cp ${ifupScript} /var/gvpe/if-up

There seems to be a tab here.

-- 
Eelco Dolstra | http://www.st.ewi.tudelft.nl/~dolstra/



More information about the nix-dev mailing list