diff options
Diffstat (limited to 'tasks')
-rwxr-xr-x | tasks | 58 |
1 files changed, 58 insertions, 0 deletions
@@ -0,0 +1,58 @@ +#!/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 + +# Go back to the previous folder +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 |