summaryrefslogtreecommitdiffstats
path: root/qc
diff options
context:
space:
mode:
Diffstat (limited to 'qc')
-rwxr-xr-xqc178
1 files changed, 178 insertions, 0 deletions
diff --git a/qc b/qc
new file mode 100755
index 0000000..0e32109
--- /dev/null
+++ b/qc
@@ -0,0 +1,178 @@
+#!/bin/bash
+#
+## Wrapper script for quart
+#
+## Takes care of ~/.quart.d
+#
+## .quart.d
+## |-- archive
+## | |-- 190706_Saturday_220700.org
+## | |-- 190707_Sunday_220701.org
+## |-- today.org
+
+#
+##
+## Initialize values
+##
+#
+
+ED="${EDITOR:-emacs -nw}"
+QHOME="${QUART_HOME:-$HOME/.quart.d}"
+ARCHIVE="$QHOME"/archive
+TODAY_FILE="$QHOME"/today.org
+DATE_CMD="date +%y%m%d_%A_%H%m%S"
+
+if [[ -z $(which quart) ]]; then
+ echo "quart is not installed"
+ exit 1
+fi
+
+QUART_CMD=$(which quart)
+
+function archive {
+ if [[ ! -d "$ARCHIVE" ]]; then
+ echo "archive directory does not exist"
+ exit 1
+ fi
+
+ if [[ -f "$TODAY_FILE" ]]; then
+ mv "$TODAY_FILE" "$ARCHIVE/$($DATE_CMD)"
+ return 1
+ fi
+
+ return 0
+}
+
+function make_today {
+ if [[ ! -d "$QHOME" ]]; then
+ echo "quart home directory does not exist"
+ exit 1
+ fi
+
+ cat > "$TODAY_FILE" << EOF
+#+START: 9:00
+
+# quart schedule created at $(date "+%A %d of %B the year of our lord %Y")
+
+# Avaliable task flags:
+# ! Urgent, ? Maybe, @ External
+# Use `=` to signal a task repeat
+
+EOF
+}
+
+function edit_today {
+ if [[ ! -f "$TODAY_FILE" ]]; then
+ echo "run new first"
+ exit 1
+ fi
+
+ $ED "$TODAY_FILE"
+}
+
+function summary_today {
+ if [[ ! -f "$TODAY_FILE" ]]; then
+ return 0
+ fi
+
+ "$QUART_CMD" "$TODAY_FILE" -s
+}
+
+function make_qhome {
+ if [[ -d "$QHOME" ]]; then
+ echo "QUART_HOME already exists in $QHOME"
+ else
+ mkdir "$QHOME"
+ echo "QUART_HOME initialized in $QHOME"
+ fi
+
+ if [[ -d "$ARCHIVE" ]]; then
+ echo "archive directory already exists"
+ else
+ mkdir "$ARCHIVE"
+ echo "archive directory created"
+ fi
+
+}
+
+if [ $# -lt 1 ]; then
+ if [[ ! -d "$QHOME" ]]; then
+ echo "run init first"
+ exit 1
+ fi
+
+ if [[ ! -f "$TODAY_FILE" ]]; then
+ echo "run new first"
+ exit 1
+ fi
+
+ echo -e "Current schedule:\n"
+ "$QUART_CMD" "$TODAY_FILE" -s
+ exit 0
+fi
+
+if [[ "$1" == "-" ]]; then
+ shift
+ "$QUART_CMD" "$TODAY_FILE" $@
+ exit $?
+fi
+
+case $1 in
+ init|i)
+ make_qhome
+ exit 0
+ # create ~/.quart.d director structure
+ ;;
+ new|n)
+ shift
+ archive
+ make_today
+ edit_today
+ summary_today
+ exit 0
+ # backup the old schedule and create a new one
+ ;;
+ edit|e)
+ shift
+ edit_today
+ summary_today
+ exit 0
+ # edit the current schedule
+ ;;
+ remove|rm)
+ shift
+ archive
+ exit 0
+ # rm current schedule, after backing it up
+ ;;
+ cat|c)
+ shift
+ cat "$TODAY_FILE"
+ exit 0
+ ;;
+ help|h|-h|--help)
+ shift
+ cat << EOF
+qc -- bash wrapper for quart
+
+Usage:
+$0 [OPTION]
+$0 - [quart option]
+
+OPTIONS:
+ init | i initialize quart home
+ new | n create new schedule (archives current one)
+ remove | rm remove current schedule (and archive it)
+ edit | e edit current schedule
+ cat | c print current schedule
+ help | h show this help
+ - pass arguments to quart
+EOF
+ exit 0
+ ;;
+ *)
+ echo "qc: '$1' is not a valid option"
+ shift
+ exit 1
+ ;;
+esac