diff options
| -rw-r--r-- | krebs/3modules/lass/default.nix | 1 | ||||
| -rw-r--r-- | krebs/Zhosts/go | 13 | ||||
| -rw-r--r-- | lass/2configs/git.nix | 1 | ||||
| -rw-r--r-- | lass/2configs/go.nix | 21 | ||||
| -rw-r--r-- | lass/2configs/ircd.nix | 3 | ||||
| -rw-r--r-- | lass/5pkgs/default.nix | 1 | ||||
| -rw-r--r-- | lass/5pkgs/go/default.nix | 2 | ||||
| -rw-r--r-- | lass/5pkgs/newsbot-js/default.nix | 60 | ||||
| -rw-r--r-- | lass/5pkgs/newsbot-js/packages.nix | 1442 | ||||
| -rw-r--r-- | tv/2configs/base.nix | 6 | 
10 files changed, 1525 insertions, 25 deletions
| diff --git a/krebs/3modules/lass/default.nix b/krebs/3modules/lass/default.nix index 9dbc597ed..afedf95f2 100644 --- a/krebs/3modules/lass/default.nix +++ b/krebs/3modules/lass/default.nix @@ -21,6 +21,7 @@ with import ../../4lib { inherit lib; };            aliases = [              "echelon.retiolum"              "cgit.echelon.retiolum" +            "go.retiolum"            ];            tinc.pubkey = ''              -----BEGIN RSA PUBLIC KEY----- diff --git a/krebs/Zhosts/go b/krebs/Zhosts/go deleted file mode 100644 index de9ebeb78..000000000 --- a/krebs/Zhosts/go +++ /dev/null @@ -1,13 +0,0 @@ -Subnet = 10.243.109.132 -Subnet = 42:f9f0:be1f:b191:116a:3db0:d546:70d2 -# dn42 routing -Subnet = 172.22.0.0/15 - ------BEGIN RSA PUBLIC KEY----- -MIIBCgKCAQEApKt/lYqRgl4KE1ouSi5nbt7n7FEjECkGtkRhLFDJs0uWNvPj7wEh -nTtqzk7lJ8upHgmNN+1w98n2bcJ7Qcbz8vCcMEO7MXdlzGH9vet/g6ZgQ/Z1ijHl -IxYeH7yyBDLoJ2gghMhiSF0cezFDmNKPMhN+cGr9Lou54igK3I5CMIMN8cx0Fu0G -uLAxvnZfxIzzCnrF9xvZ6i3g/rEcaGjxmAysCW8SQdRmBKlkzQaUbLy39V2Z5y6m -SWR7gIGgMVCkpSeWUVSi05wgnMhoEu6LEYTBy/3bPK96O/Y7JBVpYUHqk/ya2PNR -eaHfEpCrKsek4t/5hcLk64Eo/ydzeU+gAQIDAQAB ------END RSA PUBLIC KEY----- diff --git a/lass/2configs/git.nix b/lass/2configs/git.nix index d63705ab6..2164b2e33 100644 --- a/lass/2configs/git.nix +++ b/lass/2configs/git.nix @@ -32,6 +32,7 @@ let      wai-middleware-time = {};      web-routes-wai-custom = {};      go = {}; +    newsbot-js = {};    };    restricted-repos = mapAttrs make-restricted-repo ( diff --git a/lass/2configs/go.nix b/lass/2configs/go.nix index 30d3e6ae5..81a02ec7c 100644 --- a/lass/2configs/go.nix +++ b/lass/2configs/go.nix @@ -1,5 +1,6 @@ -{ config, pkgs, ... }: +{ config, lib, pkgs, ... }: +with lib;  {    imports = [      ../3modules/go.nix @@ -10,7 +11,19 @@    lass.go = {      enable = true;    }; -  krebs.iptables.tables.filter.INPUT.rules = [ -    { predicate = "-i retiolum -p tcp --dport 1337"; target = "ACCEPT"; } -  ]; +  krebs.nginx = { +    enable = true; +    servers.go = { +      locations = [ +        (nameValuePair "/" '' +          proxy_set_header Host go; +          proxy_pass http://localhost:1337; +        '') +      ]; +      server-names = [ +        "go" +        "go.retiolum" +      ]; +    }; +  };  } diff --git a/lass/2configs/ircd.nix b/lass/2configs/ircd.nix index de96ad9d6..e48bbfd3e 100644 --- a/lass/2configs/ircd.nix +++ b/lass/2configs/ircd.nix @@ -4,7 +4,8 @@    krebs.iptables.tables.filter.INPUT.rules = [      { predicate = "-i retiolum -p tcp --dport 6667"; target = "ACCEPT"; }    ]; -  config.services.charybdis = { + +  services.charybdis = {      enable = true;      config = ''        serverinfo { diff --git a/lass/5pkgs/default.nix b/lass/5pkgs/default.nix index e3e49e37e..869f808ce 100644 --- a/lass/5pkgs/default.nix +++ b/lass/5pkgs/default.nix @@ -14,4 +14,5 @@ rec {      vimperator = callPackage ./firefoxPlugins/vimperator.nix {};    };    go = callPackage ./go/default.nix {}; +  newsbot-js = callPackage ./newsbot-js/default.nix {};  } diff --git a/lass/5pkgs/go/default.nix b/lass/5pkgs/go/default.nix index 3b4468d18..9dd166adc 100644 --- a/lass/5pkgs/go/default.nix +++ b/lass/5pkgs/go/default.nix @@ -36,8 +36,6 @@ in nodePackages.buildNodePackage {    buildInputs = [      nodejs -    nodePackages.redis -    np.formidable      makeWrapper    ]; diff --git a/lass/5pkgs/newsbot-js/default.nix b/lass/5pkgs/newsbot-js/default.nix new file mode 100644 index 000000000..7758b04db --- /dev/null +++ b/lass/5pkgs/newsbot-js/default.nix @@ -0,0 +1,60 @@ +{ stdenv, makeWrapper, lib, buildEnv, fetchgit, nodePackages, nodejs }: + +with lib; + +let +  np = nodePackages.override { +    generated = ./packages.nix; +    self = np; +  }; + +  node_env = buildEnv { +    name = "node_env"; +    paths = [ +      np.feedparser +      np.form-data +      np.irc +      np.request +      np.shell-quote +    ]; +    pathsToLink = [ "/lib" ]; +    ignoreCollisions = true; +  }; + +in nodePackages.buildNodePackage { +  name = "newsbot-js"; + +  src = fetchgit { +    url = "http://cgit.echelon/newsbot-js/"; +    rev = "cd32ef7b39819f53c7125b22c594202724cc8754"; +    sha256 = "425e800f7638a5679ed8a049614a7533f3c8dd09659061885240dc93952ff0ae"; +  }; + +  phases = [ +    "unpackPhase" +    "installPhase" +  ]; + +  deps = (filter (v: nixType v == "derivation") (attrValues np)); + +  buildInputs = [ +    nodejs +    makeWrapper +  ]; + +  installPhase = '' +    mkdir -p $out/bin + +    cp newsbot.js $out/ +    cat > $out/newsbot << EOF +      ${nodejs}/bin/node $out/newsbot.js +    EOF +    chmod +x $out/newsbot + +    wrapProgram $out/newsbot \ +      --prefix NODE_PATH : ${node_env}/lib/node_modules + +     ln -s $out/newsbot /$out/bin/newsbot +  ''; + +} diff --git a/lass/5pkgs/newsbot-js/packages.nix b/lass/5pkgs/newsbot-js/packages.nix new file mode 100644 index 000000000..982a9d55c --- /dev/null +++ b/lass/5pkgs/newsbot-js/packages.nix @@ -0,0 +1,1442 @@ +{ self, fetchurl, fetchgit ? null, lib }: + +{ +  by-spec."addressparser"."~0.1.3" = +    self.by-version."addressparser"."0.1.3"; +  by-version."addressparser"."0.1.3" = self.buildNodePackage { +    name = "addressparser-0.1.3"; +    version = "0.1.3"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/addressparser/-/addressparser-0.1.3.tgz"; +      name = "addressparser-0.1.3.tgz"; +      sha1 = "9e9ab43d257e1ae784e1df5f580c9f5240f58874"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."ansi-color"."0.2.1" = +    self.by-version."ansi-color"."0.2.1"; +  by-version."ansi-color"."0.2.1" = self.buildNodePackage { +    name = "ansi-color-0.2.1"; +    version = "0.2.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz"; +      name = "ansi-color-0.2.1.tgz"; +      sha1 = "3e75c037475217544ed763a8db5709fa9ae5bf9a"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."ansi-regex"."^2.0.0" = +    self.by-version."ansi-regex"."2.0.0"; +  by-version."ansi-regex"."2.0.0" = self.buildNodePackage { +    name = "ansi-regex-2.0.0"; +    version = "2.0.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz"; +      name = "ansi-regex-2.0.0.tgz"; +      sha1 = "c5061b6e0ef8a81775e50f5d66151bf6bf371107"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."ansi-styles"."^2.1.0" = +    self.by-version."ansi-styles"."2.1.0"; +  by-version."ansi-styles"."2.1.0" = self.buildNodePackage { +    name = "ansi-styles-2.1.0"; +    version = "2.1.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz"; +      name = "ansi-styles-2.1.0.tgz"; +      sha1 = "990f747146927b559a932bf92959163d60c0d0e2"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."array-filter"."~0.0.0" = +    self.by-version."array-filter"."0.0.1"; +  by-version."array-filter"."0.0.1" = self.buildNodePackage { +    name = "array-filter-0.0.1"; +    version = "0.0.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz"; +      name = "array-filter-0.0.1.tgz"; +      sha1 = "7da8cf2e26628ed732803581fd21f67cacd2eeec"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."array-indexofobject"."~0.0.1" = +    self.by-version."array-indexofobject"."0.0.1"; +  by-version."array-indexofobject"."0.0.1" = self.buildNodePackage { +    name = "array-indexofobject-0.0.1"; +    version = "0.0.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz"; +      name = "array-indexofobject-0.0.1.tgz"; +      sha1 = "aaa128e62c9b3c358094568c219ff64fe489d42a"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."array-map"."~0.0.0" = +    self.by-version."array-map"."0.0.0"; +  by-version."array-map"."0.0.0" = self.buildNodePackage { +    name = "array-map-0.0.0"; +    version = "0.0.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz"; +      name = "array-map-0.0.0.tgz"; +      sha1 = "88a2bab73d1cf7bcd5c1b118a003f66f665fa662"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."array-reduce"."~0.0.0" = +    self.by-version."array-reduce"."0.0.0"; +  by-version."array-reduce"."0.0.0" = self.buildNodePackage { +    name = "array-reduce-0.0.0"; +    version = "0.0.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz"; +      name = "array-reduce-0.0.0.tgz"; +      sha1 = "173899d3ffd1c7d9383e4479525dbe278cab5f2b"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."asn1"."0.1.11" = +    self.by-version."asn1"."0.1.11"; +  by-version."asn1"."0.1.11" = self.buildNodePackage { +    name = "asn1-0.1.11"; +    version = "0.1.11"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz"; +      name = "asn1-0.1.11.tgz"; +      sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."assert-plus"."^0.1.5" = +    self.by-version."assert-plus"."0.1.5"; +  by-version."assert-plus"."0.1.5" = self.buildNodePackage { +    name = "assert-plus-0.1.5"; +    version = "0.1.5"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz"; +      name = "assert-plus-0.1.5.tgz"; +      sha1 = "ee74009413002d84cec7219c6ac811812e723160"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."async"."^1.4.0" = +    self.by-version."async"."1.4.2"; +  by-version."async"."1.4.2" = self.buildNodePackage { +    name = "async-1.4.2"; +    version = "1.4.2"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/async/-/async-1.4.2.tgz"; +      name = "async-1.4.2.tgz"; +      sha1 = "6c9edcb11ced4f0dd2f2d40db0d49a109c088aab"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."aws-sign2"."~0.5.0" = +    self.by-version."aws-sign2"."0.5.0"; +  by-version."aws-sign2"."0.5.0" = self.buildNodePackage { +    name = "aws-sign2-0.5.0"; +    version = "0.5.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz"; +      name = "aws-sign2-0.5.0.tgz"; +      sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."bl"."~1.0.0" = +    self.by-version."bl"."1.0.0"; +  by-version."bl"."1.0.0" = self.buildNodePackage { +    name = "bl-1.0.0"; +    version = "1.0.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/bl/-/bl-1.0.0.tgz"; +      name = "bl-1.0.0.tgz"; +      sha1 = "ada9a8a89a6d7ac60862f7dec7db207873e0c3f5"; +    }; +    deps = { +      "readable-stream-2.0.2" = self.by-version."readable-stream"."2.0.2"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."bluebird"."^2.9.30" = +    self.by-version."bluebird"."2.10.2"; +  by-version."bluebird"."2.10.2" = self.buildNodePackage { +    name = "bluebird-2.10.2"; +    version = "2.10.2"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz"; +      name = "bluebird-2.10.2.tgz"; +      sha1 = "024a5517295308857f14f91f1106fc3b555f446b"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."boom"."2.x.x" = +    self.by-version."boom"."2.9.0"; +  by-version."boom"."2.9.0" = self.buildNodePackage { +    name = "boom-2.9.0"; +    version = "2.9.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/boom/-/boom-2.9.0.tgz"; +      name = "boom-2.9.0.tgz"; +      sha1 = "a54b7fd2fee477d351bf9e371680cbea67f12715"; +    }; +    deps = { +      "hoek-2.16.3" = self.by-version."hoek"."2.16.3"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."boom"."^2.8.x" = +    self.by-version."boom"."2.9.0"; +  by-spec."caseless"."~0.11.0" = +    self.by-version."caseless"."0.11.0"; +  by-version."caseless"."0.11.0" = self.buildNodePackage { +    name = "caseless-0.11.0"; +    version = "0.11.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz"; +      name = "caseless-0.11.0.tgz"; +      sha1 = "715b96ea9841593cc33067923f5ec60ebda4f7d7"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."chalk"."^1.0.0" = +    self.by-version."chalk"."1.1.1"; +  by-version."chalk"."1.1.1" = self.buildNodePackage { +    name = "chalk-1.1.1"; +    version = "1.1.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz"; +      name = "chalk-1.1.1.tgz"; +      sha1 = "509afb67066e7499f7eb3535c77445772ae2d019"; +    }; +    deps = { +      "ansi-styles-2.1.0" = self.by-version."ansi-styles"."2.1.0"; +      "escape-string-regexp-1.0.3" = self.by-version."escape-string-regexp"."1.0.3"; +      "has-ansi-2.0.0" = self.by-version."has-ansi"."2.0.0"; +      "strip-ansi-3.0.0" = self.by-version."strip-ansi"."3.0.0"; +      "supports-color-2.0.0" = self.by-version."supports-color"."2.0.0"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."combined-stream"."^1.0.5" = +    self.by-version."combined-stream"."1.0.5"; +  by-version."combined-stream"."1.0.5" = self.buildNodePackage { +    name = "combined-stream-1.0.5"; +    version = "1.0.5"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz"; +      name = "combined-stream-1.0.5.tgz"; +      sha1 = "938370a57b4a51dea2c77c15d5c5fdf895164009"; +    }; +    deps = { +      "delayed-stream-1.0.0" = self.by-version."delayed-stream"."1.0.0"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."combined-stream"."~1.0.1" = +    self.by-version."combined-stream"."1.0.5"; +  by-spec."commander"."^2.8.1" = +    self.by-version."commander"."2.8.1"; +  by-version."commander"."2.8.1" = self.buildNodePackage { +    name = "commander-2.8.1"; +    version = "2.8.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz"; +      name = "commander-2.8.1.tgz"; +      sha1 = "06be367febfda0c330aa1e2a072d3dc9762425d4"; +    }; +    deps = { +      "graceful-readlink-1.0.1" = self.by-version."graceful-readlink"."1.0.1"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."core-util-is"."~1.0.0" = +    self.by-version."core-util-is"."1.0.1"; +  by-version."core-util-is"."1.0.1" = self.buildNodePackage { +    name = "core-util-is-1.0.1"; +    version = "1.0.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz"; +      name = "core-util-is-1.0.1.tgz"; +      sha1 = "6b07085aef9a3ccac6ee53bf9d3df0c1521a5538"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."cryptiles"."2.x.x" = +    self.by-version."cryptiles"."2.0.5"; +  by-version."cryptiles"."2.0.5" = self.buildNodePackage { +    name = "cryptiles-2.0.5"; +    version = "2.0.5"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz"; +      name = "cryptiles-2.0.5.tgz"; +      sha1 = "3bdfecdc608147c1c67202fa291e7dca59eaa3b8"; +    }; +    deps = { +      "boom-2.9.0" = self.by-version."boom"."2.9.0"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."ctype"."0.5.3" = +    self.by-version."ctype"."0.5.3"; +  by-version."ctype"."0.5.3" = self.buildNodePackage { +    name = "ctype-0.5.3"; +    version = "0.5.3"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz"; +      name = "ctype-0.5.3.tgz"; +      sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."delayed-stream"."~1.0.0" = +    self.by-version."delayed-stream"."1.0.0"; +  by-version."delayed-stream"."1.0.0" = self.buildNodePackage { +    name = "delayed-stream-1.0.0"; +    version = "1.0.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; +      name = "delayed-stream-1.0.0.tgz"; +      sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."escape-string-regexp"."^1.0.2" = +    self.by-version."escape-string-regexp"."1.0.3"; +  by-version."escape-string-regexp"."1.0.3" = self.buildNodePackage { +    name = "escape-string-regexp-1.0.3"; +    version = "1.0.3"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz"; +      name = "escape-string-regexp-1.0.3.tgz"; +      sha1 = "9e2d8b25bc2555c3336723750e03f099c2735bb5"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."extend"."~3.0.0" = +    self.by-version."extend"."3.0.0"; +  by-version."extend"."3.0.0" = self.buildNodePackage { +    name = "extend-3.0.0"; +    version = "3.0.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/extend/-/extend-3.0.0.tgz"; +      name = "extend-3.0.0.tgz"; +      sha1 = "5a474353b9f3353ddd8176dfd37b91c83a46f1d4"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."feedparser"."*" = +    self.by-version."feedparser"."1.1.3"; +  by-version."feedparser"."1.1.3" = self.buildNodePackage { +    name = "feedparser-1.1.3"; +    version = "1.1.3"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/feedparser/-/feedparser-1.1.3.tgz"; +      name = "feedparser-1.1.3.tgz"; +      sha1 = "0b725f6b4cbe4b26d518baec0d010ad020156c8b"; +    }; +    deps = { +      "sax-0.6.1" = self.by-version."sax"."0.6.1"; +      "addressparser-0.1.3" = self.by-version."addressparser"."0.1.3"; +      "array-indexofobject-0.0.1" = self.by-version."array-indexofobject"."0.0.1"; +      "readable-stream-1.0.33" = self.by-version."readable-stream"."1.0.33"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  "feedparser" = self.by-version."feedparser"."1.1.3"; +  by-spec."forever-agent"."~0.6.0" = +    self.by-version."forever-agent"."0.6.1"; +  by-version."forever-agent"."0.6.1" = self.buildNodePackage { +    name = "forever-agent-0.6.1"; +    version = "0.6.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; +      name = "forever-agent-0.6.1.tgz"; +      sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."form-data"."*" = +    self.by-version."form-data"."1.0.0-rc3"; +  by-version."form-data"."1.0.0-rc3" = self.buildNodePackage { +    name = "form-data-1.0.0-rc3"; +    version = "1.0.0-rc3"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz"; +      name = "form-data-1.0.0-rc3.tgz"; +      sha1 = "d35bc62e7fbc2937ae78f948aaa0d38d90607577"; +    }; +    deps = { +      "async-1.4.2" = self.by-version."async"."1.4.2"; +      "combined-stream-1.0.5" = self.by-version."combined-stream"."1.0.5"; +      "mime-types-2.1.7" = self.by-version."mime-types"."2.1.7"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  "form-data" = self.by-version."form-data"."1.0.0-rc3"; +  by-spec."form-data"."~1.0.0-rc1" = +    self.by-version."form-data"."1.0.0-rc3"; +  by-spec."generate-function"."^2.0.0" = +    self.by-version."generate-function"."2.0.0"; +  by-version."generate-function"."2.0.0" = self.buildNodePackage { +    name = "generate-function-2.0.0"; +    version = "2.0.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz"; +      name = "generate-function-2.0.0.tgz"; +      sha1 = "6858fe7c0969b7d4e9093337647ac79f60dfbe74"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."generate-object-property"."^1.1.0" = +    self.by-version."generate-object-property"."1.2.0"; +  by-version."generate-object-property"."1.2.0" = self.buildNodePackage { +    name = "generate-object-property-1.2.0"; +    version = "1.2.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz"; +      name = "generate-object-property-1.2.0.tgz"; +      sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0"; +    }; +    deps = { +      "is-property-1.0.2" = self.by-version."is-property"."1.0.2"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."graceful-readlink".">= 1.0.0" = +    self.by-version."graceful-readlink"."1.0.1"; +  by-version."graceful-readlink"."1.0.1" = self.buildNodePackage { +    name = "graceful-readlink-1.0.1"; +    version = "1.0.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz"; +      name = "graceful-readlink-1.0.1.tgz"; +      sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."har-validator"."^1.6.1" = +    self.by-version."har-validator"."1.8.0"; +  by-version."har-validator"."1.8.0" = self.buildNodePackage { +    name = "har-validator-1.8.0"; +    version = "1.8.0"; +    bin = true; +    src = fetchurl { +      url = "http://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz"; +      name = "har-validator-1.8.0.tgz"; +      sha1 = "d83842b0eb4c435960aeb108a067a3aa94c0eeb2"; +    }; +    deps = { +      "bluebird-2.10.2" = self.by-version."bluebird"."2.10.2"; +      "chalk-1.1.1" = self.by-version."chalk"."1.1.1"; +      "commander-2.8.1" = self.by-version."commander"."2.8.1"; +      "is-my-json-valid-2.12.2" = self.by-version."is-my-json-valid"."2.12.2"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."has-ansi"."^2.0.0" = +    self.by-version."has-ansi"."2.0.0"; +  by-version."has-ansi"."2.0.0" = self.buildNodePackage { +    name = "has-ansi-2.0.0"; +    version = "2.0.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"; +      name = "has-ansi-2.0.0.tgz"; +      sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91"; +    }; +    deps = { +      "ansi-regex-2.0.0" = self.by-version."ansi-regex"."2.0.0"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."hashish"."~0.0.4" = +    self.by-version."hashish"."0.0.4"; +  by-version."hashish"."0.0.4" = self.buildNodePackage { +    name = "hashish-0.0.4"; +    version = "0.0.4"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz"; +      name = "hashish-0.0.4.tgz"; +      sha1 = "6d60bc6ffaf711b6afd60e426d077988014e6554"; +    }; +    deps = { +      "traverse-0.6.6" = self.by-version."traverse"."0.6.6"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."hawk"."~3.1.0" = +    self.by-version."hawk"."3.1.0"; +  by-version."hawk"."3.1.0" = self.buildNodePackage { +    name = "hawk-3.1.0"; +    version = "3.1.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz"; +      name = "hawk-3.1.0.tgz"; +      sha1 = "8a13ae19977ec607602f3f0b9fd676f18c384e44"; +    }; +    deps = { +      "hoek-2.16.3" = self.by-version."hoek"."2.16.3"; +      "boom-2.9.0" = self.by-version."boom"."2.9.0"; +      "cryptiles-2.0.5" = self.by-version."cryptiles"."2.0.5"; +      "sntp-1.0.9" = self.by-version."sntp"."1.0.9"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."hoek"."2.x.x" = +    self.by-version."hoek"."2.16.3"; +  by-version."hoek"."2.16.3" = self.buildNodePackage { +    name = "hoek-2.16.3"; +    version = "2.16.3"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz"; +      name = "hoek-2.16.3.tgz"; +      sha1 = "20bb7403d3cea398e91dc4710a8ff1b8274a25ed"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."http-signature"."~0.11.0" = +    self.by-version."http-signature"."0.11.0"; +  by-version."http-signature"."0.11.0" = self.buildNodePackage { +    name = "http-signature-0.11.0"; +    version = "0.11.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz"; +      name = "http-signature-0.11.0.tgz"; +      sha1 = "1796cf67a001ad5cd6849dca0991485f09089fe6"; +    }; +    deps = { +      "assert-plus-0.1.5" = self.by-version."assert-plus"."0.1.5"; +      "asn1-0.1.11" = self.by-version."asn1"."0.1.11"; +      "ctype-0.5.3" = self.by-version."ctype"."0.5.3"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."iconv"."~2.1.6" = +    self.by-version."iconv"."2.1.11"; +  by-version."iconv"."2.1.11" = self.buildNodePackage { +    name = "iconv-2.1.11"; +    version = "2.1.11"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/iconv/-/iconv-2.1.11.tgz"; +      name = "iconv-2.1.11.tgz"; +      sha1 = "5f5da93a643506f5ceaa8bd9c78d6174f8b9351a"; +    }; +    deps = { +      "nan-2.0.9" = self.by-version."nan"."2.0.9"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."inherits"."~2.0.1" = +    self.by-version."inherits"."2.0.1"; +  by-version."inherits"."2.0.1" = self.buildNodePackage { +    name = "inherits-2.0.1"; +    version = "2.0.1"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz"; +      name = "inherits-2.0.1.tgz"; +      sha1 = "b17d08d326b4423e568eff719f91b0b1cbdf69f1"; +    }; +    deps = { +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."irc"."*" = +    self.by-version."irc"."0.4.0"; +  by-version."irc"."0.4.0" = self.buildNodePackage { +    name = "irc-0.4.0"; +    version = "0.4.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/irc/-/irc-0.4.0.tgz"; +      name = "irc-0.4.0.tgz"; +      sha1 = "316811f0aed73a907cd420cbd61fc7ea522d82da"; +    }; +    deps = { +      "ansi-color-0.2.1" = self.by-version."ansi-color"."0.2.1"; +      "irc-colors-1.2.0" = self.by-version."irc-colors"."1.2.0"; +    }; +    optionalDependencies = { +      "iconv-2.1.11" = self.by-version."iconv"."2.1.11"; +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  "irc" = self.by-version."irc"."0.4.0"; +  by-spec."irc-colors"."^1.1.0" = +    self.by-version."irc-colors"."1.2.0"; +  by-version."irc-colors"."1.2.0" = self.buildNodePackage { +    name = "irc-colors-1.2.0"; +    version = "1.2.0"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/irc-colors/-/irc-colors-1.2.0.tgz"; +      name = "irc-colors-1.2.0.tgz"; +      sha1 = "73315b06f8840f4abd181456f08569620a088afd"; +    }; +    deps = { +      "hashish-0.0.4" = self.by-version."hashish"."0.0.4"; +    }; +    optionalDependencies = { +    }; +    peerDependencies = []; +    os = [ ]; +    cpu = [ ]; +  }; +  by-spec."is-my-json-valid"."^2.12.0" = +    self.by-version."is-my-json-valid"."2.12.2"; +  by-version."is-my-json-valid"."2.12.2" = self.buildNodePackage { +    name = "is-my-json-valid-2.12.2"; +    version = "2.12.2"; +    bin = false; +    src = fetchurl { +      url = "http://registry.npmjs.org/is-my-json-valid | 
