From 4b02b11c5adb1a70dd39318b8256c649e66c04e6 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 3 Jun 2020 09:27:18 -0400 Subject: [PATCH] Topic lookup speed increase, code quality improvement --- share/adapters/rfc.sh | 41 +++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/share/adapters/rfc.sh b/share/adapters/rfc.sh index 9e7af40..f537abc 100755 --- a/share/adapters/rfc.sh +++ b/share/adapters/rfc.sh @@ -5,7 +5,16 @@ # Search for an RFC # Contrib to chubin - cheat.sh RFC_get() -{ +( + rfc_describe() { + sed -ne '/0001/,$p' ${RFC_INDEX} \ + | tr '\n' '#' \ + | sed 's/##/\n/g' \ + | sed 's/# //g' \ + | grep -o '.*\. ' \ + | sed -r 's/^(.*)(January|February|March|April|May|June|July|August|September|October|November|December) [[:digit:]]{4}(.*)$/\1/' + } + mkdir -p /tmp/RFC_get local WEB_RESP="/tmp/RFC_get/rfc_get_web_resp_${RANDOM}.html" local RFC_INDEX="/tmp/RFC_get/rfc_index.html" @@ -74,41 +83,21 @@ RFC_get() elif [[ "${1,,}" == ":list" ]] then # Format RFC_INDEX to show short description of each RFC - sed -ne '/0001/,$p' ${RFC_INDEX} \ - | tr '\n' '#' \ - | sed 's/##/\n/g' \ - | sed 's/# //g' \ - | grep -o '.*\. ' \ - | sed -r 's/^(.*)(January|February|March|April|May|June|July|August|September|October|November|December) [[:digit:]]{4}(.*)$/\1/' \ + rfc_describe \ | grep -v 'Not Issued' \ | sed 's/ .*//; s/^0*//' - # printf "\nValid RFC numbers: [ ${MIN_RFC} - ${MAX_RFC} ]\n" return 0 # Print list of available RFCs elif [[ "${1,,}" == ":describe" ]] then # Format RFC_INDEX to show short description of each RFC - sed -ne '/0001/,$p' ${RFC_INDEX} \ - | tr '\n' '#' \ - | sed 's/##/\n/g' \ - | sed 's/# //g' \ - | grep -o '.*\. ' \ - | sed -r 's/^(.*)(January|February|March|April|May|June|July|August|September|October|November|December) [[:digit:]]{4}(.*)$/\1/' - # printf "\nValid RFC numbers: [ ${MIN_RFC} - ${MAX_RFC} ]\n" + rfc_describe return 0 # Format list of RFCs related to keyword: RFC_N RFC_Title else ARG="$*" - curl "https://www.rfc-editor.org/search/rfc_search_detail.php?title=${ARG}" 2>/dev/null \ - | sed 's/href="/\n/g; s/.html/.html\n/g' \ - | grep -A 1 --color=auto 'http.*.html' \ - | sed '/boldtext/d; s/"target/<"target/g; s/<[^>]*>//g; /HTML,/d; s/HTML//; /--/d' \ - | grep -v -B 1 html \ - | rev \ - | sed 's/lmth\.//; s/cfr.*//; /--/d' \ - | rev \ - | sed 's/[A-Z]\..*//; /mail-archive/,+1d; s/^[ \t]*//' \ - | sed 's/ .*//g; s/ $WEB_RESP fi # Format nicely and print @@ -122,6 +111,6 @@ RFC_get() cat -s ${WEB_RESP} return 0 fi -} +) RFC_get "$1"