From 6fae25b305d714b3ab7608fa003f1af9bf024545 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Tue, 14 Feb 2023 13:33:23 +0800 Subject: Rename tools into bin --- bin/wiki/diary | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ bin/wiki/log.sh | 31 +++++++++++++++++++++++++++++++ bin/wiki/notify | 7 +++++++ 3 files changed, 87 insertions(+) create mode 100755 bin/wiki/diary create mode 100755 bin/wiki/log.sh create mode 100755 bin/wiki/notify (limited to 'bin/wiki') diff --git a/bin/wiki/diary b/bin/wiki/diary new file mode 100755 index 0000000..3995ecf --- /dev/null +++ b/bin/wiki/diary @@ -0,0 +1,49 @@ +#! /bin/bash + +today=~/log/`date +%y.w%W.md` + +specify_date() { + YEAR=${YEAR:-22} + + while read -e -p 'Month? ' -r MONTH /dev/null && break + done + + while read -e -p 'Day? ' -r DAY /dev/null && break + done + + FILE=~/log/diary/20$YEAR-$MONTH-$DAY.md + vim -c 'Goyo' $FILE +} + +print_today() { + [[ ! -e $today ]] && touch $today + cat $today +} + +edit_today() { + vim -c Goyo $today +} + +add_entry() { + [[ $# -ne 0 ]] && echo - "$@" >>$today + while read -e -r entry; do + echo $entry | sed -E 's/\t/ /g; s/(^[[:space:]]*)/\1- /' >>$today + done +} + +case "$1" in + specify) + specify_date ;; + print) + print_today ;; + today) + edit_today ;; + *) + add_entry "$@" ;; +esac diff --git a/bin/wiki/log.sh b/bin/wiki/log.sh new file mode 100755 index 0000000..4ef2c27 --- /dev/null +++ b/bin/wiki/log.sh @@ -0,0 +1,31 @@ +#! /bin/bash + +# Restore mail in variable +MAIL="$(cat)" + +# Only execute the following script when mail receiver is log@topo.tw +grep -qE "^X-Original-To: .*log@topo.tw[>]?$" <<<"$MAIL" || exit 0 +# A little hacky way to check if mail is sent from me +sed -nE '/^Received: /p;/^$/q' <<<"$(MAIL)" | wc -l | xargs -i test {} -lt 2 || exit 0 + +# Leave log +date >>~/Downloads/log.log +echo $$ >>~/Downloads/log.log +awk -v RS= 'NR>1' <<<"$MAIL" >>~/Downloads/log.log + +LOG=~/log/`date +%y.w%W.md` +TODAY="`date '+%a %b.%d'`" + +grep -Eq "^## ${TODAY}$" ${LOG} || \ +cat <>${LOG} + + +## $TODAY +EOF + + +# Save content to log file of current week +echo >>${LOG} +awk -v RS= 'NR>1' <<<"$MAIL" >>${LOG} + +{ cd ~/log && git add `basename ${LOG}` && git commit -m "Update by mail"; } >>~/Downloads/log.log diff --git a/bin/wiki/notify b/bin/wiki/notify new file mode 100755 index 0000000..6e510d8 --- /dev/null +++ b/bin/wiki/notify @@ -0,0 +1,7 @@ +#! /bin/sh + +exec >/dev/pts/$(ls /dev/pts -t | head -1) + +echo +echo +cat -- cgit v1.2.3-70-g09d2