anchor.diff:          '';
         };
   
  +      userName = mkOption {
  +        default = "";
  +        example = "johntron";
  +        type = types.string;
  +        description = ''
  +          A nick identity specific to the IRC server.
  +        '';
  +      };
  +
  +      password = mkOption {
  +        type = types.str;
  +        default = "";
  +        description = ''
  +          IRC server password, such as for a Slack gateway.
  +        '';
  +      };
  +
         useSSL = mkOption {
           type = types.bool;
           default = true;
  
positive.code: 
          if [[ ! -f ${cfg.dataDir}/znc.pem ]]; then
            ${pkgs.coreutils}/bin/echo "No znc.pem file found in ${cfg.dataDir}. Creating one now."
            ${pkgs.znc}/bin/znc --makepem --datadir ${cfg.dataDir} 
          fi
  
          # Symlink modules
  
negative.code:             ${ lib.concatStringsSep "\n" (lib.mapAttrsToList (name: net: ''
                <Network ${name}>
                    ${concatMapStrings (m: "LoadModule = ${m}\n") net.modules}
                    Server = ${net.server} ${lib.optionalString net.useSSL "+"}${toString net.port} ${net.password}
                    ${concatMapStrings (c: "<Chan #${c}>\n</Chan>\n") net.channels}
                    ${lib.optionalString net.hasBitlbeeControlChannel ''
                      <Chan &bitlbee></Chan>
                    ''}
                    ${net.extraConf}
                </Network>
                '') confOpts.networks) }
      </User>
  