commit d413e8307b8dd8c77607ee4aa385b273114124cc
parent eaf4eb53b1d7ea0ea238217c4815bb9a4ca287e0
Author: Jacob R. Edwards <n/a>
Date: Sun, 13 Mar 2022 23:29:23 -0700
Overhaul feed script
It's a bit more simple, and useful in that it doesn't format HTML.
Diffstat:
| M | local/bin/bin/feed | | | 67 | ++++++++++++++++++++++++++++++++----------------------------------- |
1 file changed, 32 insertions(+), 35 deletions(-)
diff --git a/local/bin/bin/feed b/local/bin/bin/feed
@@ -1,44 +1,41 @@
#!/bin/sh
-# Copyright 2021 Jacob R. Edwards
+# Copyright 2021, 2022 Jacob R. Edwards
# License: GPLv3
-#
-# feed -- sfeed(5) file user interface
#
-# l[ist] List items
-# i[tem] Display the nth item
-# e[xpr] Display items matching an ERE
-# v[iew] Display all items (default)
-
-view()
-{
- cut -f4 "$@" | sed 's/\\[tn]/ /g' | htmlfmt
-}
+# feed -- sfeed(5) file user interface
-list()
-{
- awk -vOFS='\t' -F'\t' '{ print $7, FNR, $2 }' "$@"
+expand() {
+ sed 's/\\t/ /g
+s/\\n/\
+/g'
}
-item()
-{
- local item=${1:?no item index}; shift
- for feed in "${@-'/dev/stdin'}"
- do
- sed -n "$item { p
- q
- }" $feed
- done | view
+html() {
+ awk -F ' ' '{
+ printf "<section id=\"%s\">\n\
+<h1>(<a href=\"#%s\">%s</a>) %s</h1>\n\
+%s\n\
+</section>\n", NR, NR, NR, $2, $4
+ }' "$@"
}
-expr()
-{
- egrep -i "$@" | view
-}
+fmt() html
+while test $# -gt 0
+do
+ case "$1" in
+ (-b|-body) fmt() cut -f4 ;;
+ (-l|-list) fmt() cut -f2 ;;
+ (-u|-url) fmt() cut -f8 ;;
+ (-*)
+ echo "usage: $0 [-blu] expr [feed ...]\n" 1>&2
+ exit 1
+ ;;
+ (*)
+ break
+ esac
+ shift
+done
-case "$1" in
-(l|list) shift; list "$@";;
-(i|item) shift; item "$@";;
-(e|expr) shift; expr "$@";;
-(v|view) shift; view "$@";;
-(*) printf 'usage: %s l|i|e|v feed...\n' `basename $0` 1>&2; exit 1;;
-esac
+item="$1"
+shift
+sed -En "$item p" "$@" | fmt | sed '/^$/ d' | expand