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