#!/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