diff options
Diffstat (limited to 'krebs')
-rw-r--r-- | krebs/3modules/default.nix | 2 | ||||
-rw-r--r-- | krebs/3modules/setuid.nix | 4 | ||||
-rw-r--r-- | krebs/5pkgs/simple/bling/default.nix | 56 | ||||
-rw-r--r-- | krebs/5pkgs/simple/git-hooks/default.nix | 40 | ||||
-rw-r--r-- | krebs/5pkgs/simple/krebs-pages/default.nix | 8 | ||||
-rw-r--r-- | krebs/5pkgs/simple/krebs-pages/fixtures/index.html | 42 | ||||
-rw-r--r-- | krebs/5pkgs/simple/krebs-pages/fixtures/thesauron.html | 133 | ||||
-rw-r--r-- | krebs/5pkgs/simple/urlwatch/default.nix | 8 | ||||
-rw-r--r-- | krebs/5pkgs/simple/whatsupnix/whatsupnix.bash | 36 |
9 files changed, 295 insertions, 34 deletions
diff --git a/krebs/3modules/default.nix b/krebs/3modules/default.nix index 227eb209b..081724cfe 100644 --- a/krebs/3modules/default.nix +++ b/krebs/3modules/default.nix @@ -186,7 +186,7 @@ let makefu tv ]; - ciko.mail = "wieczorek.stefan@gmail.com"; + ciko.mail = "ciko@slash16.net"; in { "anmeldung@eloop.org" = eloop-ml; "cfp@eloop.org" = eloop-ml; diff --git a/krebs/3modules/setuid.nix b/krebs/3modules/setuid.nix index c9677fd24..a17ec0883 100644 --- a/krebs/3modules/setuid.nix +++ b/krebs/3modules/setuid.nix @@ -47,9 +47,7 @@ let type = mkOptionType { # TODO admit symbolic mode name = "octal mode"; - check = x: - isString x && - match "[0-7][0-7][0-7][0-7]" x != null; + check = test "[0-7][0-7][0-7][0-7]"; merge = mergeOneOption; }; }; diff --git a/krebs/5pkgs/simple/bling/default.nix b/krebs/5pkgs/simple/bling/default.nix new file mode 100644 index 000000000..8d6207f65 --- /dev/null +++ b/krebs/5pkgs/simple/bling/default.nix @@ -0,0 +1,56 @@ +{ imagemagick, runCommand, ... }: + +with import <stockholm/lib>; + +let + krebs-v2 = [ + " " + " " + " x x x x" + "xx x xx xx xx x" + "xx x xx xx xx x" + " xxx x x xxx" + " xxx xxxxx xxx" + " x xxxxxxx x " + " xxxxxxxxxxxxx " + " xxxxxxx " + " xxxxxxxxxxx " + " x xxx x " + " x x x x x x " + " x x x x x x " + " x xx x x xx x " + " " + ]; + + chars-per-pixel = 1; + colors = 2; + columns = foldl' max 0 (map stringLength krebs-v2); + rows = length krebs-v2; + + png-geometry = "1692x1692"; + + txt = concatMapStrings (s: "${s}\n") krebs-v2; + + xpm = '' + static char *krebs_v2[] = { + ${toC (toString [columns rows colors chars-per-pixel])}, + " c None", + "x c #E4002B", + ${concatMapStringsSep ",\n " toC krebs-v2} + }; + ''; +in + +runCommand "bling" + { + inherit xpm; + passAsFile = ["xpm"]; + } + '' + mkdir -p $out + cd $out + + cp $xpmPath krebs-v2.xpm + ${imagemagick}/bin/convert krebs-v2.xpm krebs-v2.ico + ${imagemagick}/bin/convert krebs-v2.xpm -scale ${png-geometry} krebs-v2.png + '' diff --git a/krebs/5pkgs/simple/git-hooks/default.nix b/krebs/5pkgs/simple/git-hooks/default.nix index 4017b873b..1930c7f14 100644 --- a/krebs/5pkgs/simple/git-hooks/default.nix +++ b/krebs/5pkgs/simple/git-hooks/default.nix @@ -5,7 +5,15 @@ with import <stockholm/lib>; { # TODO irc-announce should return a derivation # but it cannot because krebs.git.repos.*.hooks :: attrsOf str - irc-announce = { nick, channel, server, port ? 6667, verbose ? false, branches ? [] }: '' + irc-announce = + { branches ? [] + , cgit_endpoint ? "http://cgit.${nick}.r" + , channel + , nick + , port ? 6667 + , server + , verbose ? false + }: /* sh */ '' #! /bin/sh set -euf @@ -34,7 +42,6 @@ with import <stockholm/lib>; port=${toString port} host=$nick - cgit_endpoint=http://cgit.$host.r empty=0000000000000000000000000000000000000000 @@ -66,22 +73,27 @@ with import <stockholm/lib>; if [ $newrev = $empty ]; then id=$empty_tree; fi if [ $oldrev = $empty ]; then id2=$empty_tree; fi - case $receive_mode in - create) - link="$cgit_endpoint/$GIT_SSH_REPO/?h=$h" - ;; - delete) - link="$cgit_endpoint/$GIT_SSH_REPO/ ($h)" - ;; - fast-forward|non-fast-forward) - link="$cgit_endpoint/$GIT_SSH_REPO/diff/?h=$h&id=$id&id2=$id2" - ;; - esac + ${if cgit_endpoint != null then /* sh */ '' + cgit_endpoint=${escapeShellArg cgit_endpoint} + case $receive_mode in + create) + link="$cgit_endpoint/$GIT_SSH_REPO/?h=$h" + ;; + delete) + link="$cgit_endpoint/$GIT_SSH_REPO/ ($h)" + ;; + fast-forward|non-fast-forward) + link="$cgit_endpoint/$GIT_SSH_REPO/diff/?h=$h&id=$id&id2=$id2" + ;; + esac + '' else /* sh */ '' + link="$GIT_SSH_REPO $h" + ''} #$host $GIT_SSH_REPO $ref $link add_message $(pink push) $link $(gray "($receive_mode)") - ${optionalString verbose '' + ${optionalString verbose /* sh */ '' add_message "$( git log \ --format="$(orange %h) %s $(gray '(%ar)')" \ diff --git a/krebs/5pkgs/simple/krebs-pages/default.nix b/krebs/5pkgs/simple/krebs-pages/default.nix new file mode 100644 index 000000000..c4ecb2603 --- /dev/null +++ b/krebs/5pkgs/simple/krebs-pages/default.nix @@ -0,0 +1,8 @@ +{ bling, runCommand, ... }: + +runCommand "krebs-pages-0" {} '' + mkdir $out + cp ${./fixtures}/* $out/ + ln -s ${bling}/krebs-v2.ico $out/favicon.ico + ln -s ${bling}/krebs-v2.png $out/ +'' diff --git a/krebs/5pkgs/simple/krebs-pages/fixtures/index.html b/krebs/5pkgs/simple/krebs-pages/fixtures/index.html new file mode 100644 index 000000000..e6b7034b3 --- /dev/null +++ b/krebs/5pkgs/simple/krebs-pages/fixtures/index.html @@ -0,0 +1,42 @@ +<!doctype html> +<title>krebscode</title> +<style> + html { + background: black url(krebs-v2.png) fixed no-repeat 50% 0%; + background-size: 423px; + } + a:visited { + color: white; + } + a:link { + color: lightgrey; + } +</style> +<script> + var html; + window.onload = function () { + html = document.getElementsByTagName('html')[0]; + window.onresize(); + } + window.onresize = function () { + html.style.backgroundSize = + Math.min(document.height - 23, document.width - 23) + 'px'; + } +</script> +<body> + <p> + <a href="http://krebscode.github.io/minikrebs/linuxtag"> + Linuxtag Heckenkrebs Presentation + </a> + </p> + <p> + <a href="http://krebscode.github.io/writeups"> + CTF Writeups + </a> + </p> + <p> + <a href="thesauron.html"> + Thesauron + </a> + </p> +</body> diff --git a/krebs/5pkgs/simple/krebs-pages/fixtures/thesauron.html b/krebs/5pkgs/simple/krebs-pages/fixtures/thesauron.html new file mode 100644 index 000000000..bcf1c5d48 --- /dev/null +++ b/krebs/5pkgs/simple/krebs-pages/fixtures/thesauron.html @@ -0,0 +1,133 @@ +<p>Cholerab n. +[de] +- Kunstwort aus Kollaboration und Cholera. Beschreibt den Zustand, dass + Zusammenarbeit niemals gut, einfach und ohne Schmerzen funktioniert. +- Teamwork-Plattform für Krebscode.</p> + +<p>eigentlich adv. +[de] +- Hinweis darauf, dass der Inhalt eines Satzes eine Soll-Realität beschreibt, + die nicht der Fall ist. +Antonym: tatsaechlich</p> + +<p>ghost n. +[de] +- Host im Darknet welcher evtl. irgendwie noch da ist (als dd image auf anderen + Festplatten) aber wohl nie wieder kommen wird. +Siehe: Wiederbelebung</p> + +<p>KD;RP abbr. (pronounciation: kah-derp) +[en] +- Short for Krebs Darknet / Retiolum Prefix.</p> + +<p>krebs +[de] +- krebs ist ein soziales Experiment, eine Organisation, das zweit aelteste + Softwareprojekt im Shack und viel verteilte infrastruktur.</p> + +<p>kremium +[en] +- coinage derived from the words premium and krebs +see: broken +usage: Reaktor ircbot has unfixed broken behavior since ever->“Kremium Software”</p> + +<p>KRI abbr. (pronounciation: [en] cry) +[en] +- Short for Krebs Request for Implementation. + Derived from Scheme Requests for Implementation (SRFI).</p> + +<p>litterate programming n. +[en] +- any code that has not been proved mathematically.</p> + +<p>Nahziel n. +[de] +- Ziel mit höchst möglicher Priorität.</p> + +<p>Nahzielerfahrung n. +[de] +- das Erlebnis der (endgültigen) Nichterreichung eines Nahziels (obwohl + nur noch wenig ((quasi-) infinitesimal viel) nötig gewesen wäre).</p> + +<p>parentheses of fear +[en] +- unnecessary parentheses, usually used when order of precedence is unknown. + - Examples: 1 + (2 * 3)</p> + +<p>Protip n. +[en] +- (Probably vague) description how a task can be solved. + - Antonym: Spoiler + - Example: + - To defeat the Cyberdaemon, shoot at it until it dies. + - RTFM</p> + +<p>Punching Lemma n. +[de] +- Sozialer Druck zur Aufrechterhaltung der Ordnung in dem sozialen Geflaecht + von Krebs</p> + +<p>ref, n. +[en] +- A reference like an URI, ISBN, name of a person, etc.</p> + +<p>reftrace, n. +[en] +- A stacktrace-like representation of refs that lead to some (any kind of) + conclusion. Usually generated by a human. The conclusion can be either on + the top or on the bottom of the stack. If the order is ambiguous, then it + should be communicated explicitly. + - Example: (conclusion first) + - http://en.wikipedia.org/wiki/Stack_trace + - google “stacktrace” (first entry / 2014–12–05T12:13:58Z) + - think about some example [this could be omitted, as it’s obvious…]</p> + +<p>Retiolum n. +[en] +- The official darknet of Krebs which utilizes the Retiolum Prefix to + address individual nodes.</p> + +<p>Retiolum Prefix n. +[en] +- The universally accepted IPv6-prefix, 42::/16. Anyone can has a + /128-subnet and, if require, anything larger.</p> + +<p>Retiolum Realtime Map n. +[en] +- The network map of the public visible part of Retiolum.</p> + +<p>RRM [abbr.][en] +- Short for Retiolum Retiolum Map.</p> + +<p>Sanatorium n. +[en] +- The Krebs Control and Command Center. +- An Retiolum-based IRC-channel where all Reaktor-enabled nodes gather + and lurk for relevant input.</p> + +<p>Spoiler n. +[en] +- A subset of walkthrough, i.e. any individual steps may be omitted. + - Antonym: Protip</p> + +<p>tatsaechlich, adv. +[de] +- Hinweis darauf, dass der Inhalt eines Satzes exakt der Realität entspricht. +Antonym: eigentlich</p> + +<p>Verkrebsung n. +[de] +- Synonym fuer die Installation von Krebs (oder eine einzelnen Krebs + Komponente) auf einem beliebigem System.</p> + +<p>Walkthrough n. +[en] +- Description of the individual steps to complete a task. + - Examples: + - program code + - small-step semantics</p> + +<p>Wiederbelebung n. +[de] +- Ein ghost wird im Darknet wieder erreichbar +Siehe: ghost</p> diff --git a/krebs/5pkgs/simple/urlwatch/default.nix b/krebs/5pkgs/simple/urlwatch/default.nix index 7ffbd8870..509555669 100644 --- a/krebs/5pkgs/simple/urlwatch/default.nix +++ b/krebs/5pkgs/simple/urlwatch/default.nix @@ -1,16 +1,17 @@ { stdenv, fetchurl, python3Packages }: python3Packages.buildPythonPackage rec { - name = "urlwatch-2.5"; + name = "urlwatch-${meta.version}"; src = fetchurl { - url = "https://thp.io/2008/urlwatch/${name}.tar.gz"; - sha256 = "0qirpymdmpsx0klmhbx3icmiwpm6fx4wjma646gl9m90pifs8430"; + url = "https://github.com/thp/urlwatch/archive/${meta.version}.tar.gz"; + sha256 = "09bn31gn03swi7yr3s1ql8x07hx96gap1ka77kk44kk0lvfxn55b"; }; propagatedBuildInputs = with python3Packages; [ keyring minidb + pycodestyle pyyaml requests2 ]; @@ -20,5 +21,6 @@ python3Packages.buildPythonPackage rec { homepage = https://thp.io/2008/urlwatch/; license = stdenv.lib.licenses.bsd3; maintainers = [ stdenv.lib.maintainers.tv ]; + version = "2.6"; }; } diff --git a/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash b/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash index eba44be1c..042763048 100644 --- a/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash +++ b/krebs/5pkgs/simple/whatsupnix/whatsupnix.bash @@ -1,26 +1,33 @@ #!/usr/bin/env bash - +# # Prints build logs for failed derivations in quiet build mode (-Q). # See https://github.com/NixOS/nix/issues/443 # # Usage: # -# set -o pipefail -# nix-build ... -Q ... | whatsupnix [user@target[:port]] +# nix-build ... -Q ... 2>&1 | whatsupnix [user@target[:port]] +# +# Exit Codes: +# +# 0 No failed derivations could be found. This either means there where +# no build errors, or stdin wasn't nix-build output. +# +# 1 Usage error; arguments couldn't be parsed. +# +# 2 Build error; at least one failed derivation could be found. # - GAWK=${GAWK:-gawk} NIX_STORE=${NIX_STORE:-nix-store} -broken=$(mktemp) -trap 'rm -f -- "$broken"' EXIT +failed_drvs=$(mktemp --tmpdir whatsupnix.XXXXXXXX) +trap 'rm -f -- "$failed_drvs"' EXIT exec >&2 -$GAWK -v broken="$broken" ' +$GAWK -v failed_drvs="$failed_drvs" ' match($0, /^builder for ‘(\/nix\/store\/[^’]+\.drv)’ failed/, m) { - print m[1] >> broken + print m[1] >> failed_drvs } { print $0 } ' @@ -28,7 +35,7 @@ $GAWK -v broken="$broken" ' case $# in 0) print_log() { - $NIX_STORE -l "$1" + NIX_PAGER= $NIX_STORE -l "$1" } ;; 1) @@ -47,7 +54,7 @@ case $# in remote_host=$1 print_log() { ssh "$remote_user@$remote_host" -p "$remote_port" \ - nix-store -l "$1" + env NIX_PAGER= nix-store -l "$1" } ;; *) @@ -55,7 +62,6 @@ case $# in exit 1 esac -export NIX_PAGER='' # for nix-store while read -r drv; do title="** FAILED $drv LOG **" frame=${title//?/*} @@ -68,6 +74,10 @@ while read -r drv; do print_log "$drv" echo -done < "$broken" +done < "$failed_drvs" -exit 0 +if test -s "$failed_drvs"; then + exit 2 +else + exit 0 +fi |