From 68e60b93ffdc78b341c297161f7edd03a9eb2a90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Thu, 11 Mar 2021 10:26:19 +0100 Subject: [PATCH] feat(scripts): pimp rfc script --- .bin/rfc.sh | 1 - configs/packages/default.nix | 1 + packages/scripts/default.nix | 5 +++++ packages/scripts/rfc.sh | 24 ++++++++++++++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) delete mode 100644 .bin/rfc.sh create mode 100644 packages/scripts/rfc.sh diff --git a/.bin/rfc.sh b/.bin/rfc.sh deleted file mode 100644 index 3c21f3e..0000000 --- a/.bin/rfc.sh +++ /dev/null @@ -1 +0,0 @@ -curl -sSL "https://tools.ietf.org/rfc/rfc$*.txt" | less diff --git a/configs/packages/default.nix b/configs/packages/default.nix index 2aea0ae..b606f02 100644 --- a/configs/packages/default.nix +++ b/configs/packages/default.nix @@ -144,6 +144,7 @@ in { scripts.liddel-scott-jones # kmein.slide scripts.tolino-screensaver + scripts.rfc nix-prefetch-git scripts.nix-git nixfmt diff --git a/packages/scripts/default.nix b/packages/scripts/default.nix index 0d53d58..13e0879 100644 --- a/packages/scripts/default.nix +++ b/packages/scripts/default.nix @@ -302,6 +302,11 @@ in rec { unicodmenu = pkgs.callPackage ./unicodmenu.nix { }; + rfc = wrapScript { + script = ./rfc.sh; + name = "rfc"; + packages = [ pkgs.curl pkgs.pup pkgs.gnused pkgs.gawk pkgs.gnugrep pkgs.fzf ]; + }; bvg = pkgs.callPackage ./bvg.nix { }; nav = pkgs.callPackage ./nav.nix { }; diff --git a/packages/scripts/rfc.sh b/packages/scripts/rfc.sh new file mode 100644 index 0000000..3d8d0bb --- /dev/null +++ b/packages/scripts/rfc.sh @@ -0,0 +1,24 @@ +#!/bin/sh +set -efu + +cache_file=/tmp/rfc-index.txt + +fetch_index() { + if [ -f "$cache_file" ] + then cat "$cache_file" + else curl -sSL https://tools.ietf.org/rfc/index | tee "$cache_file" + fi +} + +rfc_list="$(fetch_index \ + | pup 'pre text{}' \ + | awk '$0 != "" {printf "%s",$0} $0 == "" {printf "\n"}' \ + | sed 's/\s\+/ /g' \ + | sed 'n;d' \ + | grep '^RFC[[:digit:]]' \ + | sed 's/RFC\([[:digit:]]\+\)/\1\t/;s/\. .*//' +)" + +selection="$(echo "$rfc_list" | fzf | awk '{print $1}')" + +curl -sSL "https://tools.ietf.org/rfc/rfc$selection.txt" | less