From aaa3c23a80b01e443c7715c87ef13bda7784e3b1 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Sun, 5 Mar 2023 23:25:37 -0600 Subject: Add functions --- twerk | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/twerk b/twerk index 8fe163e..68f59d0 100755 --- a/twerk +++ b/twerk @@ -94,6 +94,10 @@ main() { read_posts "$TWERK_FILE" } +remain() { + _TWERK_INITIAL=false main "$TWERK_FEEDS" +} + ### Library fetch_posts() { @@ -155,6 +159,11 @@ sort_posts() { sort -r } +struncate() { + printf '%s\n' "$1" | + dd ibs=1 count="$2" 2>/dev/null +} + format_posts() { while IFS=' ' read -r date name url post do @@ -167,8 +176,8 @@ format_posts() { fi printf "%${TWERK_DATE_WIDTH}s | %${TWERK_USER_WIDTH}s | " \ - "$(echo "$date" | head -c$TWERK_DATE_WIDTH)" \ - "$(echo "$name" | head -c$TWERK_USER_WIDTH)" + "$(struncate "$date" "$TWERK_DATE_WIDTH")" \ + "$(struncate "$name" "$TWERK_USER_WIDTH")" export url name date post TWERK_WIDTH TWERK_HANG export linewidth="$TWERK_HANG" @@ -244,11 +253,18 @@ post() { printf 'Twt: ' >&2 read -r post + + if printf '%s\n' "$post" | grep -qE '^[ \t\n]$' + then + remain + fi + post="$(printf '%s\t%s\n' "$(date +'%FT%T%z')" "$post")" eval "printf '%s\n' \"\$post\" | $TWERK_POST_COMMAND" - _TWERK_INITIAL=false main "$TWERK_FEEDS" rm "$TWERK_CACHE/$TWERK_USER" + remain +} } refresh() { -- cgit 1.4.1-21-gabe81