--- /dev/null
+#!/bin/bash
+#
+# A taskwarrior wrapper.
+#
+
+# Basic params
+CONFIG="$HOME/.config/tasks"
+BASENAME="`basename $0`"
+PROJECT="$1"
+
+# Config
+if [ -e "$CONFIG" ] ; then
+ source $CONFIG
+fi
+
+# Custom params
+TODO_MAXDEPTH="2"
+WORKPATH="${WORKPATH:=~/}"
+FOLDERS="`echo $WORKPATH | tr ':' ' ' | sed -e "s|~|$HOME|g"`"
+
+# Check if first param is a project
+if [ ! -z "$PROJECT" ] && cd $PROJECT &> /dev/null || false; then
+ IS_PROJECT="true"
+ shift
+else
+ IS_PROJECT="false"
+fi
+
+cd - &> /dev/null
+
+# Check if project exists
+if [ "$IS_PROJECT" == "true" ]; then
+ cd $PROJECT &> /dev/null || exit 1
+
+ # Get full path
+ CWD="`pwd`"
+
+ # Call taskwarrior
+ if [ -d "$CWD/.task" ]; then
+ task rc.data.location=$CWD/.task rc.verbose=nothing $*
+ fi
+else
+ for folder in $FOLDERS; do
+ if [ ! -d "$folder" ]; then
+ continue
+ fi
+
+ find $folder/ -maxdepth $TODO_MAXDEPTH -xtype d -iname '.task' | while read task; do
+ if [ -z "$SILENT" ]; then
+ echo "Tasks from $task:"
+ echo ""
+ fi
+
+ task rc.data.location=$task rc.verbose=nothing $*
+ done
+ done
+fi
function todo_list {
local status="$1"
- # Taskwarrior
+ # User's Taskwarrior
if which task &> /dev/null; then
echo "taskwarrior:"
echo ""
echo ""
fi
- # Timewarrior
+ # User's Timewarrior
if which timew &> /dev/null; then
timew | grep -v "^There is no active time tracking."
echo ""
fi
+ # Timewarrior data from projects
+ SILENT=true tasks +$status list
+
todo_find | while read todo; do
if [ "$todo" != "$NAME" ]; then
if [ ! -z "$status" ] && ! grep -q "\($status\)" $todo; then