summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PKGBUILD14
-rwxr-xr-xrfc.sh85
2 files changed, 99 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 0000000..cd39a80
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,14 @@
+pkgname=rfc-reader
+pkgver='0.0.1'
+pkgrel=1
+pkgdesc='simple script to view rfc documents'
+license=('MIT')
+depends=(rfc)
+arch=('x86_64' 'arm')
+source=('rfc.sh')
+md5sums=('SKIP')
+
+package(){
+ mkdir -p "${pkgdir}/usr/local/bin"
+ install -Dm755 rfc.sh "${pkgdir}/usr/local/bin/rfc"
+}
diff --git a/rfc.sh b/rfc.sh
new file mode 100755
index 0000000..461b62b
--- /dev/null
+++ b/rfc.sh
@@ -0,0 +1,85 @@
+#!/usr/bin/bash
+
+# TEXTVIEW="nvim -R"
+TEXTVIEW="less"
+PDFVIEW="zathura"
+
+# arch package rfc(any)
+RFC_DIR=/usr/share/doc/rfc
+RFC_INDEX=$RFC_DIR/rfc-index.txt
+
+print_help(){
+ echo "usage:"
+ echo " rfc [option] <rfc-number>"
+ echo "options:"
+ echo " --pdf open rfc in pdf viewer"
+ echo " -q quick query, show only the summary"
+}
+
+print_summary(){
+ # if sed takes no filename, it will read stdin
+ # but we should let it fail...
+ if test -z "$RFC_INDEX"
+ then
+ echo "BAD RFC_INDEX"
+ exit 1
+ fi
+ sed -n "/^$1/,/^$/p" $RFC_INDEX
+}
+
+open_pdf(){
+ PDF=$RFC_DIR/pdf/rfc$1.pdf
+ if [ ! -f "$PDF" ]; then
+ echo "$PDF not available."
+ exit 1;
+ fi
+ $PDFVIEW $PDF
+}
+
+
+open_txt(){
+ TXT=$RFC_DIR/txt/rfc$1.txt
+ if [ ! -f "$TXT" ]; then
+ echo "$TXT not available."
+ exit 1;
+ fi
+ $TEXTVIEW $TXT
+}
+
+
+re='^[0-9]+$'
+# parse argumentsa
+while [[ $# -gt 0 ]]; do
+ case $1 in
+ -q)
+ if ! [[ $2 =~ $re ]] ; then
+ echo "invalid input" >&2; print_help; exit 1
+ fi
+ print_summary $2
+ exit
+ ;;
+ --pdf)
+ if ! [[ $2 =~ $re ]] ; then
+ echo "invalid input" >&2; print_help; exit 1
+ fi
+ open_pdf $2
+ exit
+ ;;
+ -*|--*)
+ print_help
+ exit 1
+ ;;
+ *)
+ if ! [[ $1 =~ $re ]] ; then
+ echo "invalid input $2" >&2; print_help; exit 1
+ fi
+ open_txt $1
+ exit
+ ;;
+ esac
+done
+
+if [ ! $# -eq 1 ]; then
+ print_help
+ exit 1
+fi