config

OpenBSD system configuration
git clone git://jacobedwards.org/config
Log | Files | Refs | README

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:
Mlocal/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