aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtasks57
-rwxr-xr-xtodo7
2 files changed, 62 insertions, 2 deletions
diff --git a/tasks b/tasks
new file mode 100755
index 0000000..4ab3211
--- /dev/null
+++ b/tasks
@@ -0,0 +1,57 @@
+#!/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
diff --git a/todo b/todo
index 42aaf19..19eeb24 100755
--- a/todo
+++ b/todo
@@ -38,7 +38,7 @@ function todo_find {
function todo_list {
local status="$1"
- # Taskwarrior
+ # User's Taskwarrior
if which task &> /dev/null; then
echo "taskwarrior:"
echo ""
@@ -46,12 +46,15 @@ function todo_list {
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