From 7c50d9174106fce5e4a8a47457554261394d918f Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 5 Jan 2021 20:21:46 +0100 Subject: brockman 1.4.5 -> 1.4.7 --- krebs/5pkgs/haskell/brockman.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/krebs/5pkgs/haskell/brockman.nix b/krebs/5pkgs/haskell/brockman.nix index 20af4b707..6e2cc301f 100644 --- a/krebs/5pkgs/haskell/brockman.nix +++ b/krebs/5pkgs/haskell/brockman.nix @@ -5,12 +5,12 @@ }: mkDerivation rec { pname = "brockman"; - version = "1.4.5"; + version = "1.4.7"; src = fetchFromGitHub { owner = "kmein"; repo = "brockman"; rev = version; - sha256 = "0fdvfj2fwwz8inj0h1q6msryj1xsxs1lfmgv5kynmxrqpdibb3fw"; + sha256 = "0fkkjvskgaw8dw7vrdp57ry34jpl3bpq92rhnyr9s1nyq0vij328"; }; isLibrary = false; isExecutable = true; -- cgit v1.2.3 From 1a066ef070aae21f831ab070fbc383b693a435f1 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 7 Jan 2021 15:23:35 +0100 Subject: l go: import shortener via htgen --- lass/2configs/go.nix | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/lass/2configs/go.nix b/lass/2configs/go.nix index ecf89b298..b1c9ed81e 100644 --- a/lass/2configs/go.nix +++ b/lass/2configs/go.nix @@ -15,5 +15,67 @@ ]; }; }; + krebs.htgen.go = { + port = 3333; + script = ''. ${pkgs.writeDash "go" '' + find_item() { + if test ''${#1} -ge 7; then + set -- "$(find "$STATEDIR/items" -mindepth 1 -maxdepth 1 \ + -regex "$STATEDIR/items/$1[0-9A-Za-z]*$")" + if test -n "$1" && test $(echo "$1" | wc -l) = 1; then + echo "$1" + return 0 + fi + fi + return 1 + } + + STATEDIR=$HOME + mkdir -p $STATEDIR/items + + case "$Method $Request_URI" in + "GET /"*) + if item=$(find_item ''${Request_URI#/}); then + uri=$(cat "$item") + printf 'HTTP/1.1 302 Found\r\n' + printf 'Content-Type: text/plain\r\n' + printf 'Connection: closed\r\n' + printf 'Location: %s\r\n' "$uri" + printf '\r\n' + exit + fi + ;; + "POST /") #{ "uri": "http://nixos.org" } + uri=$(mktemp -t htgen.$$.content.XXXXXXXX) + trap "rm $uri >&2" EXIT + + head -c $req_content_length \ + | grep -Eo 'https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)' \ + > $uri + sha256=$(sha256sum -b $uri | cut -d\ -f1) + base32=$(${pkgs.nixStable}/bin/nix-hash --to-base32 --type sha256 $sha256) + item=$STATEDIR/items/$base32 + ref=http://$req_host/$base32 + + if ! test -e $item; then + mkdir -v -p $STATEDIR/items >&2 + cp -v $uri $item >&2 + fi + + base32short=$(echo $base32 | cut -b-7) + if item=$(find_item $base32short); then + ref=$(echo "http://$req_host/$base32short") + fi + + printf 'HTTP/1.1 200 OK\r\n' + printf 'Content-Type: text/plain; charset=UTF-8\r\n' + printf 'Connection: close\r\n' + printf '\r\n' + printf '%s\n' "$ref" + exit + ;; + esac + ''}''; + }; } -- cgit v1.2.3 From 7def09c525e85aaac87ea1dccbc914249af147b7 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 7 Jan 2021 15:48:13 +0100 Subject: l go: quote everything, cleanup --- lass/2configs/go.nix | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/lass/2configs/go.nix b/lass/2configs/go.nix index b1c9ed81e..7ff27a619 100644 --- a/lass/2configs/go.nix +++ b/lass/2configs/go.nix @@ -31,11 +31,11 @@ } STATEDIR=$HOME - mkdir -p $STATEDIR/items + mkdir -p "$STATEDIR/items" case "$Method $Request_URI" in "GET /"*) - if item=$(find_item ''${Request_URI#/}); then + if item=$(find_item "''${Request_URI#/}"); then uri=$(cat "$item") printf 'HTTP/1.1 302 Found\r\n' printf 'Content-Type: text/plain\r\n' @@ -45,26 +45,27 @@ exit fi ;; - "POST /") #{ "uri": "http://nixos.org" } + "POST /") uri=$(mktemp -t htgen.$$.content.XXXXXXXX) - trap "rm $uri >&2" EXIT + trap 'rm $uri >&2' EXIT - head -c $req_content_length \ + head -c "$req_content_length" \ | grep -Eo 'https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)' \ + | head -1 \ > $uri - sha256=$(sha256sum -b $uri | cut -d\ -f1) - base32=$(${pkgs.nixStable}/bin/nix-hash --to-base32 --type sha256 $sha256) - item=$STATEDIR/items/$base32 - ref=http://$req_host/$base32 + sha256=$(sha256sum -b "$uri" | cut -d\ -f1) + base32=$(${pkgs.nixStable}/bin/nix-hash --to-base32 --type sha256 "$sha256") + item="$STATEDIR/items/$base32" + ref="http://$req_host/$base32" - if ! test -e $item; then - mkdir -v -p $STATEDIR/items >&2 - cp -v $uri $item >&2 + if ! test -e "$item"; then + mkdir -v -p "$STATEDIR/items" >&2 + cp -v $uri "$item" >&2 fi - base32short=$(echo $base32 | cut -b-7) - if item=$(find_item $base32short); then - ref=$(echo "http://$req_host/$base32short") + base32short=$(echo "$base32" | cut -b-7) + if item=$(find_item "$base32short"); then + ref="http://$req_host/$base32short" fi printf 'HTTP/1.1 200 OK\r\n' -- cgit v1.2.3 From cbbc021a63e0421a3b34a160ed44c608d997e0c8 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 7 Jan 2021 20:38:55 +0100 Subject: nixpkgs: 3d2d8f2 -> 4a75ca4 --- krebs/nixpkgs.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/krebs/nixpkgs.json b/krebs/nixpkgs.json index 44e373b81..bc68d3055 100644 --- a/krebs/nixpkgs.json +++ b/krebs/nixpkgs.json @@ -1,9 +1,9 @@ { "url": "https://github.com/NixOS/nixpkgs", - "rev": "3d2d8f281a27d466fa54b469b5993f7dde198375", - "date": "2020-12-20T14:17:36+01:00", - "path": "/nix/store/mqn37480fj6x9xbq3igz4haw3m2lc7fm-nixpkgs", - "sha256": "1hfis53xyzy6hfdivlwkwdy7irbhk7c500a4lf7x43cfkijx5ks1", + "rev": "4a75ca4a4e7d14e7b0b0230b3ea57b5bd7c16218", + "date": "2021-01-05T18:31:06+01:00", + "path": "/nix/store/v9dxhashbmvs1rki01caqzxjd8cs5ggz-nixpkgs", + "sha256": "1jqhmwyslwcj6l4lmdiklb1byaz0gcl4q0mym3ahzmmr6l0j4dr1", "fetchSubmodules": false, "deepClone": false, "leaveDotGit": false -- cgit v1.2.3 From 2bcfda5240c0f2be7209f8fe3d38949e3a1b83c1 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 7 Jan 2021 20:39:35 +0100 Subject: nixpkgs-unstable: e9158ec -> d9dba88 --- krebs/nixpkgs-unstable.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/krebs/nixpkgs-unstable.json b/krebs/nixpkgs-unstable.json index 4f07b0e88..0bdfe2a99 100644 --- a/krebs/nixpkgs-unstable.json +++ b/krebs/nixpkgs-unstable.json @@ -1,9 +1,9 @@ { "url": "https://github.com/NixOS/nixpkgs", - "rev": "e9158eca70ae59e73fae23be5d13d3fa0cfc78b4", - "date": "2020-12-09T15:09:49+01:00", - "path": "/nix/store/cx4wf6pi1l2p01sz7png891m65kinfz3-nixpkgs", - "sha256": "0cnmvnvin9ixzl98fmlm3g17l6w95gifqfb3rfxs55c0wj2ddy53", + "rev": "d9dba88d08a9cdf483c3d45f0d7220cf97a4ce64", + "date": "2021-01-05T19:05:55+02:00", + "path": "/nix/store/93jkhg0qcd99fqc5x1ak0grwhsn77knh-nixpkgs", + "sha256": "1ww9w7pkrr2jfszln5ifsrn200phdzn7ppf0p872wg0yfgrdpk2c", "fetchSubmodules": false, "deepClone": false, "leaveDotGit": false -- cgit v1.2.3 From 120eadb80a38e063ed9fc54af0e8b23974e9fe43 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 7 Jan 2021 21:00:04 +0100 Subject: lib.uri: add {native,posix-extended}-regex --- lib/default.nix | 1 + lib/uri.nix | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 lib/uri.nix diff --git a/lib/default.nix b/lib/default.nix index be9f60f3b..2efeec078 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -12,6 +12,7 @@ let encodeName = replaceChars ["/"] ["\\x2f"]; }; types = nixpkgs-lib.types // import ./types.nix { inherit lib; }; + uri = import ./uri.nix { inherit lib; }; xml = import ./xml.nix { inherit lib; }; eq = x: y: x == y; diff --git a/lib/uri.nix b/lib/uri.nix new file mode 100644 index 000000000..72ad390b7 --- /dev/null +++ b/lib/uri.nix @@ -0,0 +1,77 @@ +{ lib }: +with lib; +with builtins; +rec { + # Regular expression to match URIs per RFC3986 + # From: # http://jmrware.com/articles/2009/uri_regexp/URI_regex.html#uri-40 + native-regex = '' + # RFC-3986 URI component: URI + [A-Za-z][A-Za-z0-9+\-.]* : # scheme ":" + (?: // # hier-part + (?: (?:[A-Za-z0-9\-._~!$&'()*+,;=:]|%[0-9A-Fa-f]{2})* @)? + (?: + \[ + (?: + (?: + (?: (?:[0-9A-Fa-f]{1,4}:){6} + | :: (?:[0-9A-Fa-f]{1,4}:){5} + | (?: [0-9A-Fa-f]{1,4})? :: (?:[0-9A-Fa-f]{1,4}:){4} + | (?: (?:[0-9A-Fa-f]{1,4}:){0,1} [0-9A-Fa-f]{1,4})? :: (?:[0-9A-Fa-f]{1,4}:){3} + | (?: (?:[0-9A-Fa-f]{1,4}:){0,2} [0-9A-Fa-f]{1,4})? :: (?:[0-9A-Fa-f]{1,4}:){2} + | (?: (?:[0-9A-Fa-f]{1,4}:){0,3} [0-9A-Fa-f]{1,4})? :: [0-9A-Fa-f]{1,4}: + | (?: (?:[0-9A-Fa-f]{1,4}:){0,4} [0-9A-Fa-f]{1,4})? :: + ) (?: + [0-9A-Fa-f]{1,4} : [0-9A-Fa-f]{1,4} + | (?: (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) \.){3} + (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) + ) + | (?: (?:[0-9A-Fa-f]{1,4}:){0,5} [0-9A-Fa-f]{1,4})? :: [0-9A-Fa-f]{1,4} + | (?: (?:[0-9A-Fa-f]{1,4}:){0,6} [0-9A-Fa-f]{1,4})? :: + ) + | [Vv][0-9A-Fa-f]+\.[A-Za-z0-9\-._~!$&'()*+,;=:]+ + ) + \] + | (?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3} + (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) + | (?:[A-Za-z0-9\-._~!$&'()*+,;=]|%[0-9A-Fa-f]{2})* + ) + (?: : [0-9]* )? + (?:/ (?:[A-Za-z0-9\-._~!$&'()*+,;=:@]|%[0-9A-Fa-f]{2})* )* + | / + (?: (?:[A-Za-z0-9\-._~!$&'()*+,;=:@]|%[0-9A-Fa-f]{2})+ + (?:/ (?:[A-Za-z0-9\-._~!$&'()*+,;=:@]|%[0-9A-Fa-f]{2})* )* + )? + | (?:[A-Za-z0-9\-._~!$&'()*+,;=:@]|%[0-9A-Fa-f]{2})+ + (?:/ (?:[A-Za-z0-9\-._~!$&'()*+,;=:@]|%[0-9A-Fa-f]{2})* )* + | + ) + (?:\? (?:[A-Za-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})* )? # [ "?" query ] + (?:\# (?:[A-Za-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})* )? # [ "#" fragment ] + ''; + + posix-extended-regex = + let + removeComment = s: + elemAt (match "^((\\\\#|[^#])*)(#.*)?$" s) 0; + + removeWhitespace = + replaceStrings [" "] [""]; + + moveDashToEndOfCharacterClass = s: + let + result = match "(.*)\\\\-([^]]+)(].*)" s; + s' = elemAt result 0 + elemAt result 1 + "-" + elemAt result 2; + in + if result != null then + moveDashToEndOfCharacterClass s' + else + s; + in + concatStrings + (foldl' (a: f: map f a) (splitString "\n" native-regex) [ + removeComment + moveDashToEndOfCharacterClass + (replaceStrings ["(?:"] ["("]) + removeWhitespace + ]); +} -- cgit v1.2.3 From 2aab7aea07d469f60fdfb662b75f707dc70c86a8 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 7 Jan 2021 21:09:12 +0100 Subject: urix: init --- krebs/5pkgs/simple/urix.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 krebs/5pkgs/simple/urix.nix diff --git a/krebs/5pkgs/simple/urix.nix b/krebs/5pkgs/simple/urix.nix new file mode 100644 index 000000000..c0db8c975 --- /dev/null +++ b/krebs/5pkgs/simple/urix.nix @@ -0,0 +1,15 @@ +let lib = import ; in +{ pkgs }: + +# urix - URI eXtractor +# Extract all the URIs from standard input and write them to standard output! +# usage: urix < SOMEFILE + +pkgs.execBin "urix" { + filename = "${pkgs.gnugrep}/bin/grep"; + argv = [ + "urix" + "-Eo" + "\\b${lib.uri.posix-extended-regex}\\b" + ]; +} -- cgit v1.2.3 From 341a751ea26b33ac6c8b7f661cb9d2bf8e6f21d3 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 7 Jan 2021 23:14:47 +0100 Subject: brockman: 1.4.7 -> 1.5.4 --- krebs/5pkgs/haskell/brockman.nix | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/krebs/5pkgs/haskell/brockman.nix b/krebs/5pkgs/haskell/brockman.nix index 6e2cc301f..fbe914a58 100644 --- a/krebs/5pkgs/haskell/brockman.nix +++ b/krebs/5pkgs/haskell/brockman.nix @@ -1,23 +1,24 @@ -{ mkDerivation, aeson, async, base, bloomfilter, bytestring -, conduit, containers, feed, hslogger, irc-conduit, microlens -, network, optparse-applicative, stdenv, stm, text, wreq +{ mkDerivation, aeson, aeson-pretty, base, bloomfilter, bytestring +, conduit, containers, directory, feed, filepath, hslogger +, http-client, irc-conduit, lens, network, optparse-applicative +, random, safe, stdenv, text, wreq , fetchFromGitHub }: mkDerivation rec { pname = "brockman"; - version = "1.4.7"; + version = "1.5.4"; src = fetchFromGitHub { owner = "kmein"; repo = "brockman"; rev = version; - sha256 = "0fkkjvskgaw8dw7vrdp57ry34jpl3bpq92rhnyr9s1nyq0vij328"; + sha256 = "1p5bn22sfzgsdmdp14xnsdrbcqd7iy608nz0vgj6zhsabv1bsfdv"; }; isLibrary = false; isExecutable = true; executableHaskellDepends = [ - aeson async base bloomfilter bytestring conduit containers feed - hslogger irc-conduit microlens network optparse-applicative stm - text wreq + aeson aeson-pretty base bloomfilter bytestring conduit containers + directory feed filepath hslogger http-client irc-conduit lens + network optparse-applicative random safe text wreq ]; license = stdenv.lib.licenses.mit; } -- cgit v1.2.3 From dbb2024585e67c3ceaf968255263a0662c174c19 Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 7 Jan 2021 23:17:07 +0100 Subject: newsbot-js: remove package and module --- krebs/3modules/default.nix | 1 - krebs/3modules/newsbot-js.nix | 102 ---- krebs/5pkgs/simple/newsbot-js/default.nix | 58 -- krebs/5pkgs/simple/newsbot-js/node-packages.nix | 777 ------------------------ krebs/5pkgs/simple/newsbot-js/pkgs.json | 7 - krebs/5pkgs/simple/newsbot-js/update.sh | 4 - 6 files changed, 949 deletions(-) delete mode 100644 krebs/3modules/newsbot-js.nix delete mode 100644 krebs/5pkgs/simple/newsbot-js/default.nix delete mode 100644 krebs/5pkgs/simple/newsbot-js/node-packages.nix delete mode 100644 krebs/5pkgs/simple/newsbot-js/pkgs.json delete mode 100755 krebs/5pkgs/simple/newsbot-js/update.sh diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix index 2a74adac3..8c620a4e2 100644 --- a/krebs/3modules/default.nix +++ b/krebs/3modules/default.nix @@ -37,7 +37,6 @@ let ./kapacitor.nix ./konsens.nix ./monit.nix - ./newsbot-js.nix ./nixpkgs.nix ./on-failure.nix ./os-release.nix diff --git a/krebs/3modules/newsbot-js.nix b/krebs/3modules/newsbot-js.nix deleted file mode 100644 index a3640caa5..000000000 --- a/krebs/3modules/newsbot-js.nix +++ /dev/null @@ -1,102 +0,0 @@ -{ config, lib, pkgs, ... }: - -with import ; - -let - - cfg = config.krebs.newsbot-js; - - enable = cfg != {}; - - out = { - options.krebs.newsbot-js = api; - config = mkIf enable imp; - }; - - api = mkOption { - type = types.attrsOf (types.submodule ({ config, ... }: { - options = { - enable = mkEnableOption "Enable krebs newsbot" // { default = true; }; - - channel = mkOption { - type = types.str; - default = "#${config._module.args.name}"; - description = "post the news in this channel"; - }; - feeds = mkOption { - type = types.path; - description = '' - file with feeds to post - format: - $nick|$feedURI - ''; - }; - ircServer = mkOption { - type = types.str; - default = "localhost"; - description = "to which server the bot should connect"; - }; - masterNick = mkOption { - type = types.str; - default = config._module.args.name; - description = "nickname of the master bot"; - }; - package = mkOption { - type = types.package; - default = pkgs.newsbot-js; - description = "newsbot package to use"; - }; - urlShortenerHost = mkOption { - type = types.str; - default = "go.r"; - description = "what server to use for url shortening, host"; - }; - urlShortenerPort = mkOption { - type = types.str; - default = "80"; - description = "what server to use for url shortening, port"; - }; - }; - })); - default = {}; - }; - - imp = { - users.extraUsers.newsbot-js = { - name = "newsbot-js"; - uid = genid "newsbot-js"; - description = "newsbot-js user"; - home = "/var/empty"; - }; - - systemd.services = mapAttrs' (name: newsbot: - nameValuePair "newsbot-${name}" { - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; - - path = with pkgs; [ - newsbot-js - ]; - - environment = { - irc_server = newsbot.ircServer; - master_nick = newsbot.masterNick; - news_channel = newsbot.channel; - feeds_file = newsbot.feeds; - url_shortener_host = newsbot.urlShortenerHost; - url_shortener_port = newsbot.urlShortenerPort; - }; - - restartIfChanged = true; - - serviceConfig = { - User = "newsbot-js"; - Restart = "always"; - ExecStart = "${newsbot.package}/bin/newsbot"; - WatchdogSec = "86400"; - }; - } - ) cfg; - }; - -in out diff --git a/krebs/5pkgs/simple/newsbot-js/default.nix b/krebs/5pkgs/simple/newsbot-js/default.nix deleted file mode 100644 index 0ac66f433..000000000 --- a/krebs/5pkgs/simple/newsbot-js/default.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ stdenv, makeWrapper, lib, buildEnv, fetchgit, nodejs, pkgs, icu }: - -with lib; - -let - nodeEnv = import { - inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile; - nodejs = nodejs; - libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; - }; - - node_env = pkgs.buildEnv { - name = "go-node_env"; - paths = attrValues (import ./node-packages.nix { - inherit (pkgs) fetchurl fetchgit; - inherit nodeEnv; - globalBuildInputs = [ - icu.dev - ]; - }); - }; - - -in stdenv.mkDerivation { - name = "newsbot-js"; - - src = fetchgit { - url = "http://cgit.prism/newsbot-js/"; - rev = "09e01639be4ea9691cf5b33f7d9057b68ac98079"; - sha256 = "28ffbed66c2efcd194c47823c7d5d5533c80852fc0cf9d9d4ee609c71d50c142"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - 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/krebs/5pkgs/simple/newsbot-js/node-packages.nix b/krebs/5pkgs/simple/newsbot-js/node-packages.nix deleted file mode 100644 index ea45b93f3..000000000 --- a/krebs/5pkgs/simple/newsbot-js/node-packages.nix +++ /dev/null @@ -1,777 +0,0 @@ -# This file has been generated by node2nix 1.7.0. Do not edit! - -{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: - -let - sources = { - "addressparser-1.0.1" = { - name = "addressparser"; - packageName = "addressparser"; - version = "1.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz"; - sha1 = "47afbe1a2a9262191db6838e4fd1d39b40821746"; - }; - }; - "ajv-6.10.2" = { - name = "ajv"; - packageName = "ajv"; - version = "6.10.2"; - src = fetchurl { - url = "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz"; - sha512 = "TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw=="; - }; - }; - "array-indexofobject-0.0.1" = { - name = "array-indexofobject"; - packageName = "array-indexofobject"; - version = "0.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz"; - sha1 = "aaa128e62c9b3c358094568c219ff64fe489d42a"; - }; - }; - "asn1-0.2.4" = { - name = "asn1"; - packageName = "asn1"; - version = "0.2.4"; - src = fetchurl { - url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"; - sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="; - }; - }; - "assert-plus-1.0.0" = { - name = "assert-plus"; - packageName = "assert-plus"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"; - sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"; - }; - }; - "asynckit-0.4.0" = { - name = "asynckit"; - packageName = "asynckit"; - version = "0.4.0"; - src = fetchurl { - url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; - sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; - }; - }; - "aws-sign2-0.7.0" = { - name = "aws-sign2"; - packageName = "aws-sign2"; - version = "0.7.0"; - src = fetchurl { - url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"; - sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"; - }; - }; - "aws4-1.8.0" = { - name = "aws4"; - packageName = "aws4"; - version = "1.8.0"; - src = fetchurl { - url = "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"; - sha512 = "ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="; - }; - }; - "bcrypt-pbkdf-1.0.2" = { - name = "bcrypt-pbkdf"; - packageName = "bcrypt-pbkdf"; - version = "1.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"; - sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"; - }; - }; - "caseless-0.12.0" = { - name = "caseless"; - packageName = "caseless"; - version = "0.12.0"; - src = fetchurl { - url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"; - sha1 = "1b681c21ff84033c826543090689420d187151dc"; - }; - }; - "combined-stream-1.0.8" = { - name = "combined-stream"; - packageName = "combined-stream"; - version = "1.0.8"; - src = fetchurl { - url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; - sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; - }; - }; - "core-util-is-1.0.2" = { - name = "core-util-is"; - packageName = "core-util-is"; - version = "1.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; - sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; - }; - }; - "dashdash-1.14.1" = { - name = "dashdash"; - packageName = "dashdash"; - version = "1.14.1"; - src = fetchurl { - url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"; - sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"; - }; - }; - "delayed-stream-1.0.0" = { - name = "delayed-stream"; - packageName = "delayed-stream"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; - sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; - }; - }; - "ecc-jsbn-0.1.2" = { - name = "ecc-jsbn"; - packageName = "ecc-jsbn"; - version = "0.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"; - sha1 = "3a83a904e54353287874c564b7549386849a98c9"; - }; - }; - "extend-3.0.2" = { - name = "extend"; - packageName = "extend"; - version = "3.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz"; - sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="; - }; - }; - "extsprintf-1.3.0" = { - name = "extsprintf"; - packageName = "extsprintf"; - version = "1.3.0"; - src = fetchurl { - url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"; - sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05"; - }; - }; - "fast-deep-equal-2.0.1" = { - name = "fast-deep-equal"; - packageName = "fast-deep-equal"; - version = "2.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz"; - sha1 = "7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"; - }; - }; - "fast-json-stable-stringify-2.0.0" = { - name = "fast-json-stable-stringify"; - packageName = "fast-json-stable-stringify"; - version = "2.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"; - sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2"; - }; - }; - "forever-agent-0.6.1" = { - name = "forever-agent"; - packageName = "forever-agent"; - version = "0.6.1"; - src = fetchurl { - url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"; - sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"; - }; - }; - "form-data-2.3.3" = { - name = "form-data"; - packageName = "form-data"; - version = "2.3.3"; - src = fetchurl { - url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"; - sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="; - }; - }; - "getpass-0.1.7" = { - name = "getpass"; - packageName = "getpass"; - version = "0.1.7"; - src = fetchurl { - url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"; - sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa"; - }; - }; - "har-schema-2.0.0" = { - name = "har-schema"; - packageName = "har-schema"; - version = "2.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"; - sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92"; - }; - }; - "har-validator-5.1.3" = { - name = "har-validator"; - packageName = "har-validator"; - version = "5.1.3"; - src = fetchurl { - url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz"; - sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g=="; - }; - }; - "http-signature-1.2.0" = { - name = "http-signature"; - packageName = "http-signature"; - version = "1.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"; - sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1"; - }; - }; - "iconv-2.2.3" = { - name = "iconv"; - packageName = "iconv"; - version = "2.2.3"; - src = fetchurl { - url = "https://registry.npmjs.org/iconv/-/iconv-2.2.3.tgz"; - sha1 = "e084d60eeb7d73da7f0a9c096e4c8abe090bfaed"; - }; - }; - "inherits-2.0.4" = { - name = "inherits"; - packageName = "inherits"; - version = "2.0.4"; - src = fetchurl { - url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; - sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; - }; - }; - "irc-colors-1.5.0" = { - name = "irc-colors"; - packageName = "irc-colors"; - version = "1.5.0"; - src = fetchurl { - url = "https://registry.npmjs.org/irc-colors/-/irc-colors-1.5.0.tgz"; - sha512 = "HtszKchBQTcqw1DC09uD7i7vvMayHGM1OCo6AHt5pkgZEyo99ClhHTMJdf+Ezc9ovuNNxcH89QfyclGthjZJOw=="; - }; - }; - "is-typedarray-1.0.0" = { - name = "is-typedarray"; - packageName = "is-typedarray"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"; - sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a"; - }; - }; - "isarray-1.0.0" = { - name = "isarray"; - packageName = "isarray"; - version = "1.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; - sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; - }; - }; - "isstream-0.1.2" = { - name = "isstream"; - packageName = "isstream"; - version = "0.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"; - sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a"; - }; - }; - "jsbn-0.1.1" = { - name = "jsbn"; - packageName = "jsbn"; - version = "0.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"; - sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"; - }; - }; - "json-schema-0.2.3" = { - name = "json-schema"; - packageName = "json-schema"; - version = "0.2.3"; - src = fetchurl { - url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"; - sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13"; - }; - }; - "json-schema-traverse-0.4.1" = { - name = "json-schema-traverse"; - packageName = "json-schema-traverse"; - version = "0.4.1"; - src = fetchurl { - url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"; - sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="; - }; - }; - "json-stringify-safe-5.0.1" = { - name = "json-stringify-safe"; - packageName = "json-stringify-safe"; - version = "5.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"; - sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"; - }; - }; - "jsprim-1.4.1" = { - name = "jsprim"; - packageName = "jsprim"; - version = "1.4.1"; - src = fetchurl { - url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"; - sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"; - }; - }; - "lodash.assign-4.2.0" = { - name = "lodash.assign"; - packageName = "lodash.assign"; - version = "4.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz"; - sha1 = "0d99f3ccd7a6d261d19bdaeb9245005d285808e7"; - }; - }; - "lodash.get-4.4.2" = { - name = "lodash.get"; - packageName = "lodash.get"; - version = "4.4.2"; - src = fetchurl { - url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz"; - sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99"; - }; - }; - "lodash.has-4.5.2" = { - name = "lodash.has"; - packageName = "lodash.has"; - version = "4.5.2"; - src = fetchurl { - url = "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz"; - sha1 = "d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862"; - }; - }; - "lodash.uniq-4.5.0" = { - name = "lodash.uniq"; - packageName = "lodash.uniq"; - version = "4.5.0"; - src = fetchurl { - url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"; - sha1 = "d0225373aeb652adc1bc82e4945339a842754773"; - }; - }; - "mime-db-1.42.0" = { - name = "mime-db"; - packageName = "mime-db"; - version = "1.42.0"; - src = fetchurl { - url = "https://registry.npmjs.org/mime-db/-/mime-db-1.42.0.tgz"; - sha512 = "UbfJCR4UAVRNgMpfImz05smAXK7+c+ZntjaA26ANtkXLlOe947Aag5zdIcKQULAiF9Cq4WxBi9jUs5zkA84bYQ=="; - }; - }; - "mime-types-2.1.25" = { - name = "mime-types"; - packageName = "mime-types"; - version = "2.1.25"; - src = fetchurl { - url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.25.tgz"; - sha512 = "5KhStqB5xpTAeGqKBAMgwaYMnQik7teQN4IAzC7npDv6kzeU6prfkR67bc87J1kWMPGkoaZSq1npmexMgkmEVg=="; - }; - }; - "mri-1.1.4" = { - name = "mri"; - packageName = "mri"; - version = "1.1.4"; - src = fetchurl { - url = "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz"; - sha512 = "6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="; - }; - }; - "nan-2.14.0" = { - name = "nan"; - packageName = "nan"; - version = "2.14.0"; - src = fetchurl { - url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz"; - sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="; - }; - }; - "node-icu-charset-detector-0.2.0" = { - name = "node-icu-charset-detector"; - packageName = "node-icu-charset-detector"; - version = "0.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/node-icu-charset-detector/-/node-icu-charset-detector-0.2.0.tgz"; - sha1 = "c2320da374ddcb671fc54cb4a0e041e156ffd639"; - }; - }; - "oauth-sign-0.9.0" = { - name = "oauth-sign"; - packageName = "oauth-sign"; - version = "0.9.0"; - src = fetchurl { - url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"; - sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="; - }; - }; - "performance-now-2.1.0" = { - name = "performance-now"; - packageName = "performance-now"; - version = "2.1.0"; - src = fetchurl { - url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"; - sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"; - }; - }; - "process-nextick-args-2.0.1" = { - name = "process-nextick-args"; - packageName = "process-nextick-args"; - version = "2.0.1"; - src = fetchurl { - url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; - sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; - }; - }; - "psl-1.4.0" = { - name = "psl"; - packageName = "psl"; - version = "1.4.0"; - src = fetchurl { - url = "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz"; - sha512 = "HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw=="; - }; - }; - "punycode-1.4.1" = { - name = "punycode"; - packageName = "punycode"; - version = "1.4.1"; - src = fetchurl { - url = "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"; - sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"; - }; - }; - "punycode-2.1.1" = { - name = "punycode"; - packageName = "punycode"; - version = "2.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"; - sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="; - }; - }; - "qs-6.5.2" = { - name = "qs"; - packageName = "qs"; - version = "6.5.2"; - src = fetchurl { - url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"; - sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="; - }; - }; - "readable-stream-2.3.6" = { - name = "readable-stream"; - packageName = "readable-stream"; - version = "2.3.6"; - src = fetchurl { - url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz"; - sha512 = "tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw=="; - }; - }; - "safe-buffer-5.1.2" = { - name = "safe-buffer"; - packageName = "safe-buffer"; - version = "5.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; - sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; - }; - }; - "safe-buffer-5.2.0" = { - name = "safe-buffer"; - packageName = "safe-buffer"; - version = "5.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz"; - sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="; - }; - }; - "safer-buffer-2.1.2" = { - name = "safer-buffer"; - packageName = "safer-buffer"; - version = "2.1.2"; - src = fetchurl { - url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; - sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; - }; - }; - "sax-1.2.4" = { - name = "sax"; - packageName = "sax"; - version = "1.2.4"; - src = fetchurl { - url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; - sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; - }; - }; - "sshpk-1.16.1" = { - name = "sshpk"; - packageName = "sshpk"; - version = "1.16.1"; - src = fetchurl { - url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"; - sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="; - }; - }; - "string_decoder-1.1.1" = { - name = "string_decoder"; - packageName = "string_decoder"; - version = "1.1.1"; - src = fetchurl { - url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; - sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; - }; - }; - "tough-cookie-2.4.3" = { - name = "tough-cookie"; - packageName = "tough-cookie"; - version = "2.4.3"; - src = fetchurl { - url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz"; - sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ=="; - }; - }; - "tunnel-agent-0.6.0" = { - name = "tunnel-agent"; - packageName = "tunnel-agent"; - version = "0.6.0"; - src = fetchurl { - url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; - sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; - }; - }; - "tweetnacl-0.14.5" = { - name = "tweetnacl"; - packageName = "tweetnacl"; - version = "0.14.5"; - src = fetchurl { - url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"; - sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64"; - }; - }; - "uri-js-4.2.2" = { - name = "uri-js"; - packageName = "uri-js"; - version = "4.2.2"; - src = fetchurl { - url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"; - sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="; - }; - }; - "util-deprecate-1.0.2" = { - name = "util-deprecate"; - packageName = "util-deprecate"; - version = "1.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; - sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; - }; - }; - "uuid-3.3.3" = { - name = "uuid"; - packageName = "uuid"; - version = "3.3.3"; - src = fetchurl { - url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz"; - sha512 = "pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="; - }; - }; - "verror-1.10.0" = { - name = "verror"; - packageName = "verror"; - version = "1.10.0"; - src = fetchurl { - url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"; - sha1 = "3a105ca17053af55d6e270c1f8288682e18da400"; - }; - }; - }; -in -{ - feedparser = nodeEnv.buildNodePackage { - name = "feedparser"; - packageName = "feedparser"; - version = "2.2.9"; - src = fetchurl { - url = "https://registry.npmjs.org/feedparser/-/feedparser-2.2.9.tgz"; - sha1 = "9138197dafdae05fcadde0036beeaf6066c2c5e9"; - }; - dependencies = [ - sources."addressparser-1.0.1" - sources."array-indexofobject-0.0.1" - sources."core-util-is-1.0.2" - sources."inherits-2.0.4" - sources."isarray-1.0.0" - sources."lodash.assign-4.2.0" - sources."lodash.get-4.4.2" - sources."lodash.has-4.5.2" - sources."lodash.uniq-4.5.0" - sources."mri-1.1.4" - sources."process-nextick-args-2.0.1" - sources."readable-stream-2.3.6" - sources."safe-buffer-5.1.2" - sources."sax-1.2.4" - sources."string_decoder-1.1.1" - sources."util-deprecate-1.0.2" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "Robust RSS Atom and RDF feed parsing using sax js"; - homepage = http://github.com/danmactough/node-feedparser; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; - form-data = nodeEnv.buildNodePackage { - name = "form-data"; - packageName = "form-data"; - version = "3.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz"; - sha512 = "CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg=="; - }; - dependencies = [ - sources."asynckit-0.4.0" - sources."combined-stream-1.0.8" - sources."delayed-stream-1.0.0" - sources."mime-db-1.42.0" - sources."mime-types-2.1.25" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications."; - homepage = "https://github.com/form-data/form-data#readme"; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; - irc = nodeEnv.buildNodePackage { - name = "irc"; - packageName = "irc"; - version = "0.5.2"; - src = fetchurl { - url = "https://registry.npmjs.org/irc/-/irc-0.5.2.tgz"; - sha1 = "3714f4768365a96d0b2f776bc91166beb2464bbc"; - }; - dependencies = [ - sources."iconv-2.2.3" - sources."irc-colors-1.5.0" - sources."nan-2.14.0" - sources."node-icu-charset-detector-0.2.0" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "An IRC client library for node"; - homepage = "https://github.com/martynsmith/node-irc#readme"; - license = "GPL-3.0"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; - request = nodeEnv.buildNodePackage { - name = "request"; - packageName = "request"; - version = "2.88.0"; - src = fetchurl { - url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz"; - sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg=="; - }; - dependencies = [ - sources."ajv-6.10.2" - sources."asn1-0.2.4" - sources."assert-plus-1.0.0" - sources."asynckit-0.4.0" - sources."aws-sign2-0.7.0" - sources."aws4-1.8.0" - sources."bcrypt-pbkdf-1.0.2" - sources."caseless-0.12.0" - sources."combined-stream-1.0.8" - sources."core-util-is-1.0.2" - sources."dashdash-1.14.1" - sources."delayed-stream-1.0.0" - sources."ecc-jsbn-0.1.2" - sources."extend-3.0.2" - sources."extsprintf-1.3.0" - sources."fast-deep-equal-2.0.1" - sources."fast-json-stable-stringify-2.0.0" - sources."forever-agent-0.6.1" - sources."form-data-2.3.3" - sources."getpass-0.1.7" - sources."har-schema-2.0.0" - sources."har-validator-5.1.3" - sources."http-signature-1.2.0" - sources."is-typedarray-1.0.0" - sources."isstream-0.1.2" - sources."jsbn-0.1.1" - sources."json-schema-0.2.3" - sources."json-schema-traverse-0.4.1" - sources."json-stringify-safe-5.0.1" - sources."jsprim-1.4.1" - sources."mime-db-1.42.0" - sources."mime-types-2.1.25" - sources."oauth-sign-0.9.0" - sources."performance-now-2.1.0" - sources."psl-1.4.0" - sources."punycode-2.1.1" - sources."qs-6.5.2" - sources."safe-buffer-5.2.0" - sources."safer-buffer-2.1.2" - sources."sshpk-1.16.1" - (sources."tough-cookie-2.4.3" // { - dependencies = [ - sources."punycode-1.4.1" - ]; - }) - sources."tunnel-agent-0.6.0" - sources."tweetnacl-0.14.5" - sources."uri-js-4.2.2" - sources."uuid-3.3.3" - sources."verror-1.10.0" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "Simplified HTTP request client."; - homepage = "https://github.com/request/request#readme"; - license = "Apache-2.0"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; - shell-quote = nodeEnv.buildNodePackage { - name = "shell-quote"; - packageName = "shell-quote"; - version = "1.7.2"; - src = fetchurl { - url = "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz"; - sha512 = "mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg=="; - }; - buildInputs = globalBuildInputs; - meta = { - description = "quote and parse shell commands"; - homepage = https://github.com/substack/node-shell-quote; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; -} \ No newline at end of file diff --git a/krebs/5pkgs/simple/newsbot-js/pkgs.json b/krebs/5pkgs/simple/newsbot-js/pkgs.json deleted file mode 100644 index 95b60854d..000000000 --- a/krebs/5pkgs/simple/newsbot-js/pkgs.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - "feedparser", - "form-data", - "irc", - "request", - "shell-quote" -] diff --git a/krebs/5pkgs/simple/newsbot-js/update.sh b/krebs/5pkgs/simple/newsbot-js/update.sh deleted file mode 100755 index ee7e43f1a..000000000 --- a/krebs/5pkgs/simple/newsbot-js/update.sh +++ /dev/null @@ -1,4 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p nodePackages.node2nix -node2nix -12 -i pkgs.json -c combine.nix -rm node-env.nix combine.nix -- cgit v1.2.3 From 90b0cb68db8bc5d0484e7f469ac21aff4a58a464 Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 8 Jan 2021 00:36:43 +0100 Subject: ircd: add oper mode, raise limits --- krebs/2configs/ircd.nix | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/krebs/2configs/ircd.nix b/krebs/2configs/ircd.nix index 65972aacc..789fc2f2f 100644 --- a/krebs/2configs/ircd.nix +++ b/krebs/2configs/ircd.nix @@ -11,12 +11,12 @@ hello ''; config = '' + loadmodule "extensions/m_omode"; serverinfo { name = "${config.krebs.build.host.name}.irc.r"; sid = "1as"; description = "miep!"; network_name = "irc.r"; - hub = yes; vhost = "0.0.0.0"; vhost6 = "::"; @@ -26,7 +26,7 @@ #ssl_dh_params = "etc/dh.pem"; #ssld_count = 1; - default_max_clients = 10000; + default_max_clients = 100000; #nicklen = 30; }; @@ -43,19 +43,31 @@ /* Listen on IPv6 (if you used host= above). */ host = "::"; port = 6667; - sslport = 9999; + sslport = 6697; }; class "users" { ping_time = 2 minutes; number_per_ident = 10; - number_per_ip = 2048; + number_per_ip = 4096; number_per_ip_global = 4096; cidr_ipv4_bitlen = 24; cidr_ipv6_bitlen = 64; number_per_cidr = 65536; - max_number = 3000; - sendq = 1 megabyte; + max_number = 100000; + sendq = 10 megabyte; + }; + + privset "op" { + privs = oper:admin; + }; + + operator "aids" { + user = "*@*"; + password = "balls"; + flags = ~encrypted; + snomask = "+s"; + privset = "op"; }; exempt { @@ -93,12 +105,13 @@ channel_target_change = yes; disable_local_channels = no; }; + general { #maybe we want ident someday? - default_floodcount = 1000; + default_floodcount = 10000; disable_auth = yes; throttle_duration = 1; - throttle_count = 1000; + throttle_count = 10000; }; ''; }; -- cgit v1.2.3 From edf923cc7bb315b3068094510c04b40619c42620 Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 8 Jan 2021 00:37:52 +0100 Subject: brockman: add home as statedir --- krebs/3modules/brockman.nix | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/krebs/3modules/brockman.nix b/krebs/3modules/brockman.nix index 21cc14202..55e8255b4 100644 --- a/krebs/3modules/brockman.nix +++ b/krebs/3modules/brockman.nix @@ -9,7 +9,11 @@ in { }; config = mkIf cfg.enable { - users.extraUsers.brockman.isNormalUser = false; + users.extraUsers.brockman = { + home = "/var/lib/brockman"; + createHome = true; + isNormalUser = false; + }; systemd.services.brockman = { description = "RSS to IRC broadcaster"; -- cgit v1.2.3 From f3f6778c035f11b361beefc23cbb4250a94be7fb Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 8 Jan 2021 00:38:34 +0100 Subject: go: implement with htgen --- krebs/3modules/go.nix | 96 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 35 deletions(-) diff --git a/krebs/3modules/go.nix b/krebs/3modules/go.nix index 218ac9221..4df73509c 100644 --- a/krebs/3modules/go.nix +++ b/krebs/3modules/go.nix @@ -13,52 +13,78 @@ let api = { enable = mkEnableOption "Enable go url shortener"; port = mkOption { - type = types.str; - default = "1337"; + type = types.int; + default = 1337; description = "on which port go should run on"; }; - redisKeyPrefix = mkOption { - type = types.str; - default = "go:"; - description = "change the Redis key prefix which defaults to `go:`"; - }; }; imp = { - services.redis = { - enable = mkDefault true; - bind = mkDefault "127.0.0.1"; - }; + krebs.htgen.go = { + port = cfg.port; + script = ''. ${pkgs.writeDash "go" '' + find_item() { + if test ''${#1} -ge 7; then + set -- "$(find "$STATEDIR/items" -mindepth 1 -maxdepth 1 \ + -regex "$STATEDIR/items/$1[0-9A-Za-z]*$")" + if test -n "$1" && test $(echo "$1" | wc -l) = 1; then + echo "$1" + return 0 + fi + fi + return 1 + } - users.extraUsers.go = rec { - name = "go"; - uid = genid name; - description = "go url shortener user"; - home = "/var/lib/go"; - createHome = true; - }; + STATEDIR=$HOME + mkdir -p "$STATEDIR/items" - systemd.services.go = { - description = "go url shortener"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; + case "$Method $Request_URI" in + "GET /"*) + if item=$(find_item "''${Request_URI#/}"); then + uri=$(cat "$item") + printf 'HTTP/1.1 302 Found\r\n' + printf 'Content-Type: text/plain\r\n' + printf 'Connection: closed\r\n' + printf 'Location: %s\r\n' "$uri" + printf '\r\n' + exit + fi + ;; + "POST /") + uri=$(mktemp -t htgen.$$.content.XXXXXXXX) + trap 'rm $uri >&2' EXIT - path = with pkgs; [ - go-shortener - ]; + head -c "$req_content_length" \ + | sed 's/+/ /g;s/%\(..\)/\\x\1/g;' \ + | xargs -0 echo -e \ + | tee /tmp/tee.log \ + | ${pkgs.urix}/bin/urix \ + | head -1 \ + > "$uri" + sha256=$(sha256sum -b "$uri" | cut -d\ -f1) + base32=$(${pkgs.nixStable}/bin/nix-hash --to-base32 --type sha256 "$sha256") + item="$STATEDIR/items/$base32" + ref="http://$req_host/$base32" - environment = { - PORT = cfg.port; - REDIS_KEY_PREFIX = cfg.redisKeyPrefix; - }; + if ! test -e "$item"; then + mkdir -v -p "$STATEDIR/items" >&2 + cp -v "$uri" "$item" >&2 + fi - restartIfChanged = true; + base32short=$(echo "$base32" | cut -b-7) + if item=$(find_item "$base32short"); then + ref="http://$req_host/$base32short" + fi - serviceConfig = { - User = "go"; - Restart = "always"; - ExecStart = "${pkgs.go-shortener}/bin/go"; - }; + printf 'HTTP/1.1 200 OK\r\n' + printf 'Content-Type: text/plain; charset=UTF-8\r\n' + printf 'Connection: close\r\n' + printf '\r\n' + printf '%s\n' "$ref" + exit + ;; + esac + ''}''; }; }; -- cgit v1.2.3 From 3a7e4f7ae3b15e2ccd2ca50c52734c50f6257c6e Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 8 Jan 2021 00:39:04 +0100 Subject: go-shortener: remove package --- krebs/2configs/go.nix | 3 - krebs/5pkgs/simple/go-shortener/default.nix | 56 --------------- krebs/5pkgs/simple/go-shortener/node-packages.nix | 88 ----------------------- krebs/5pkgs/simple/go-shortener/pkgs.json | 4 -- krebs/5pkgs/simple/go-shortener/update.sh | 4 -- 5 files changed, 155 deletions(-) delete mode 100644 krebs/5pkgs/simple/go-shortener/default.nix delete mode 100644 krebs/5pkgs/simple/go-shortener/node-packages.nix delete mode 100644 krebs/5pkgs/simple/go-shortener/pkgs.json delete mode 100755 krebs/5pkgs/simple/go-shortener/update.sh diff --git a/krebs/2configs/go.nix b/krebs/2configs/go.nix index c39b08a8e..ce5db62d4 100644 --- a/krebs/2configs/go.nix +++ b/krebs/2configs/go.nix @@ -2,9 +2,6 @@ with import ; { - environment.systemPackages = [ - pkgs.go-shortener - ]; krebs.go = { enable = true; }; diff --git a/krebs/5pkgs/simple/go-shortener/default.nix b/krebs/5pkgs/simple/go-shortener/default.nix deleted file mode 100644 index 5e734553b..000000000 --- a/krebs/5pkgs/simple/go-shortener/default.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ stdenv, makeWrapper, lib, buildEnv, fetchgit, nodejs-12_x, pkgs }: - -with lib; - -let - nodeEnv = import { - inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile; - nodejs = nodejs-12_x; - libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; - }; - - node_env = pkgs.buildEnv { - name = "go-node_env"; - paths = attrValues (import ./node-packages.nix { - inherit (pkgs) fetchurl fetchgit; - inherit nodeEnv; - }); - }; - -in stdenv.mkDerivation { - packageName = "go"; - name = "go-shortener"; - version = "0.0.0"; - - src = fetchgit { - url = "http://cgit.lassul.us/go/"; - rev = "05d02740e0adbb36cc461323647f0c1e7f493156"; - sha256 = "6015c9a93317375ae8099c7ab982df0aa93a59ec2b48972e253887bb6ca0004f"; - }; - - phases = [ - "unpackPhase" - "installPhase" - ]; - - buildInputs = [ - nodejs-12_x - makeWrapper - ]; - - installPhase = '' - mkdir -p $out/bin - - cp index.js $out/ - cat > $out/go << EOF - ${nodejs-12_x}/bin/node $out/index.js - EOF - chmod +x $out/go - - wrapProgram $out/go \ - --prefix NODE_PATH : ${node_env}/lib/node_modules - - ln -s $out/go /$out/bin/go - ''; - -} diff --git a/krebs/5pkgs/simple/go-shortener/node-packages.nix b/krebs/5pkgs/simple/go-shortener/node-packages.nix deleted file mode 100644 index 613e31ba0..000000000 --- a/krebs/5pkgs/simple/go-shortener/node-packages.nix +++ /dev/null @@ -1,88 +0,0 @@ -# This file has been generated by node2nix 1.7.0. Do not edit! - -{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: - -let - sources = { - "denque-1.4.1" = { - name = "denque"; - packageName = "denque"; - version = "1.4.1"; - src = fetchurl { - url = "https://registry.npmjs.org/denque/-/denque-1.4.1.tgz"; - sha512 = "OfzPuSZKGcgr96rf1oODnfjqBFmr1DVoc/TrItj3Ohe0Ah1C5WX5Baquw/9U9KovnQ88EqmJbD66rKYUQYN1tQ=="; - }; - }; - "redis-commands-1.5.0" = { - name = "redis-commands"; - packageName = "redis-commands"; - version = "1.5.0"; - src = fetchurl { - url = "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz"; - sha512 = "6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg=="; - }; - }; - "redis-errors-1.2.0" = { - name = "redis-errors"; - packageName = "redis-errors"; - version = "1.2.0"; - src = fetchurl { - url = "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz"; - sha1 = "eb62d2adb15e4eaf4610c04afe1529384250abad"; - }; - }; - "redis-parser-3.0.0" = { - name = "redis-parser"; - packageName = "redis-parser"; - version = "3.0.0"; - src = fetchurl { - url = "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz"; - sha1 = "b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4"; - }; - }; - }; -in -{ - formidable = nodeEnv.buildNodePackage { - name = "formidable"; - packageName = "formidable"; - version = "1.2.2"; - src = fetchurl { - url = "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz"; - sha512 = "V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="; - }; - buildInputs = globalBuildInputs; - meta = { - description = "A node.js module for parsing form data, especially file uploads."; - homepage = https://github.com/node-formidable/formidable; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; - redis = nodeEnv.buildNodePackage { - name = "redis"; - packageName = "redis"; - version = "3.0.2"; - src = fetchurl { - url = "https://registry.npmjs.org/redis/-/redis-3.0.2.tgz"; - sha512 = "PNhLCrjU6vKVuMOyFu7oSP296mwBkcE6lrAjruBYG5LgdSqtRBoVQIylrMyVZD/lkF24RSNNatzvYag6HRBHjQ=="; - }; - dependencies = [ - sources."denque-1.4.1" - sources."redis-commands-1.5.0" - sources."redis-errors-1.2.0" - sources."redis-parser-3.0.0" - ]; - buildInputs = globalBuildInputs; - meta = { - description = "A high performance Redis client."; - homepage = https://github.com/NodeRedis/node-redis; - license = "MIT"; - }; - production = true; - bypassCache = true; - reconstructLock = true; - }; -} \ No newline at end of file diff --git a/krebs/5pkgs/simple/go-shortener/pkgs.json b/krebs/5pkgs/simple/go-shortener/pkgs.json deleted file mode 100644 index f53ce3745..000000000 --- a/krebs/5pkgs/simple/go-shortener/pkgs.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - "formidable", - "redis" -] diff --git a/krebs/5pkgs/simple/go-shortener/update.sh b/krebs/5pkgs/simple/go-shortener/update.sh deleted file mode 100755 index 1a58d0367..000000000 --- a/krebs/5pkgs/simple/go-shortener/update.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env nix-shell -#! nix-shell -i bash -p nodePackages_10_x.node2nix -node2nix -10 -i pkgs.json -c combine.nix -rm node-env.nix combine.nix -- cgit v1.2.3 From 1653101ed3f4f51408b2d264e8e4e1525d3d3730 Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 8 Jan 2021 09:21:43 +0100 Subject: l go: remove redundant htgen definition --- lass/2configs/go.nix | 63 ---------------------------------------------------- 1 file changed, 63 deletions(-) diff --git a/lass/2configs/go.nix b/lass/2configs/go.nix index 7ff27a619..ecf89b298 100644 --- a/lass/2configs/go.nix +++ b/lass/2configs/go.nix @@ -15,68 +15,5 @@ ]; }; }; - krebs.htgen.go = { - port = 3333; - script = ''. ${pkgs.writeDash "go" '' - find_item() { - if test ''${#1} -ge 7; then - set -- "$(find "$STATEDIR/items" -mindepth 1 -maxdepth 1 \ - -regex "$STATEDIR/items/$1[0-9A-Za-z]*$")" - if test -n "$1" && test $(echo "$1" | wc -l) = 1; then - echo "$1" - return 0 - fi - fi - return 1 - } - - STATEDIR=$HOME - mkdir -p "$STATEDIR/items" - - case "$Method $Request_URI" in - "GET /"*) - if item=$(find_item "''${Request_URI#/}"); then - uri=$(cat "$item") - printf 'HTTP/1.1 302 Found\r\n' - printf 'Content-Type: text/plain\r\n' - printf 'Connection: closed\r\n' - printf 'Location: %s\r\n' "$uri" - printf '\r\n' - exit - fi - ;; - "POST /") - uri=$(mktemp -t htgen.$$.content.XXXXXXXX) - trap 'rm $uri >&2' EXIT - - head -c "$req_content_length" \ - | grep -Eo 'https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)' \ - | head -1 \ - > $uri - sha256=$(sha256sum -b "$uri" | cut -d\ -f1) - base32=$(${pkgs.nixStable}/bin/nix-hash --to-base32 --type sha256 "$sha256") - item="$STATEDIR/items/$base32" - ref="http://$req_host/$base32" - - if ! test -e "$item"; then - mkdir -v -p "$STATEDIR/items" >&2 - cp -v $uri "$item" >&2 - fi - - base32short=$(echo "$base32" | cut -b-7) - if item=$(find_item "$base32short"); then - ref="http://$req_host/$base32short" - fi - - printf 'HTTP/1.1 200 OK\r\n' - printf 'Content-Type: text/plain; charset=UTF-8\r\n' - printf 'Connection: close\r\n' - printf '\r\n' - printf '%s\n' "$ref" - exit - ;; - esac - ''}''; - }; } -- cgit v1.2.3 From 947f2a600bad22a3b26656698c69208f9cee7018 Mon Sep 17 00:00:00 2001 From: lassulus Date: Fri, 8 Jan 2021 12:20:29 +0100 Subject: news: add rss-bridge as rss.r --- krebs/2configs/news.nix | 10 ++++++++++ krebs/3modules/krebs/default.nix | 1 + 2 files changed, 11 insertions(+) diff --git a/krebs/2configs/news.nix b/krebs/2configs/news.nix index 11c136f85..d61f52b29 100644 --- a/krebs/2configs/news.nix +++ b/krebs/2configs/news.nix @@ -1,6 +1,16 @@ { pkgs, ... }: { + services.rss-bridge = { + enable = true; + whitelist = [ "*" ]; + }; + services.nginx.virtualHosts.rss-bridge = { + serverAliases = [ + "rss.r" + ]; + }; + krebs.brockman = { enable = true; config = { diff --git a/krebs/3modules/krebs/default.nix b/krebs/3modules/krebs/default.nix index 5e3ddcb2d..3e3e1381f 100644 --- a