anchor.diff:      # not connected to a tty (it is connected to the journal):
       #   wall: cannot get tty name: Inappropriate ioctl for device
       # The message still gets through.
  -    #
  -    # TODO: apcupsd calls "mail" on powerfail etc. events, how should we
  -    # handle that? A configurable mail package or let the event logic be
  -    # configured from nix expressions?
       systemd.services.apcupsd = {
         description = "UPS daemon";
         wantedBy = [ "multi-user.target" ];
  
positive.code: 
  with pkgs.lib;
  
  let cfg = config.services.apcupsd;
      configFile = pkgs.writeText "apcupsd.conf" ''
        ## apcupsd.conf v1.1 ##
        # apcupsd complains if the first line is not like above.
        ${cfg.configText}
      '';
  in
  
  {
  
negative.code:         '';
        };
  
        hooks = mkOption {
          default = {};
          example = {
            doshutdown = ''# shell commands to notify that the computer is shutting down'';
          };
          type = types.attrsOf types.string;
          description = ''
            Each attribute in this option names an apcupsd event and the string
            value it contains will be executed in a shell, in response to that
            event (prior to the default action). See "man apccontrol" for the
            list of events and what they represent.
  
            A hook script can stop apccontrol from doing its default action by
            exiting with value 99. Do not do this unless you know what you're
            doing.
          '';
        };
  
      };
  
    };
  