diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2018-05-22 14:05:10 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2018-05-22 14:05:10 -0300 |
commit | 03d3b1cc6f45049efc063dc7cfda35567c168713 (patch) | |
tree | c81b33a3c16edb184d4e9e79fc3e53410ba70bf2 | |
parent | 5a2b30ba80478eb6523b1673e58427ffe77f5f2d (diff) | |
download | scripts-03d3b1cc6f45049efc063dc7cfda35567c168713.tar.gz scripts-03d3b1cc6f45049efc063dc7cfda35567c168713.tar.bz2 |
Adds tasks wrapper integrated into todo script
-rwxr-xr-x | tasks | 57 | ||||
-rwxr-xr-x | todo | 7 |
2 files changed, 62 insertions, 2 deletions
@@ -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 @@ -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 |