diff options
Diffstat (limited to 'collector')
-rwxr-xr-x | collector | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/collector b/collector new file mode 100755 index 0000000..387cb02 --- /dev/null +++ b/collector @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# +# Collector: add, view, edit a collector file (from GTD/ZTD methodologies). +# +# The collector file is a Markdown file with the Task list extension, such as +# https://docs.gitlab.com/ee/user/markdown.html#task-lists +# + +# Parameters +BASENAME="`basename $0`" +ACTION="$1" +COLLECTOR_NAME="`echo $COLLECTOR_FILE | sed -e "s|$HOME|~|"`" + +# Check +if [ -z "$COLLECTOR_FILE" ]; then + # Do not be verbose here, otherwise the "status" command will show an error + # message on unconfgirued systems. Maybe that should be controlled by a verbosity flag. + #echo "$BASENAME: please export the COLLECTOR_FILE environment variable pointing to your collector markdown file" + + exit 1 +elif [ ! -e "$COLLECTOR_FILE" ]; then + echo "$BASENAME: error: file not found: $COLLECTOR_FILE" + exit 1 +fi + +# Dispatch +if [ -z "$ACTION" ] || [ "$ACTION" == "view" ]; then + cat "$COLLECTOR_FILE" +elif [ "$ACTION" == "add" ]; then + shift + echo "* $*" >> "$COLLECTOR_FILE" +elif [ "$ACTION" == "list" ]; then + if grep -q -e "^ *\* " "$COLLECTOR_FILE"; then + echo "Collected items at $COLLECTOR_NAME:" + echo "" + grep -e "^ *\* " "$COLLECTOR_FILE" + echo "" + fi +elif [ "$ACTION" == "count" ]; then + if grep -q -e "^ *\* " "$COLLECTOR_FILE"; then + COUNT="`grep -e "^ *\* " "$COLLECTOR_FILE" | wc -l`" + echo "$COUNT collected items at $COLLECTOR_NAME" + echo "" + fi +elif [ "$ACTION" == "edit" ]; then + if [ ! -z "$EDITOR" ]; then + $EDITOR "$COLLECTOR_FILE" + else + echo "$BASENAME: error: please export the EDITOR environment variable pointing to your editor of choice" + exit 1 + fi +fi |