From 03d3b1cc6f45049efc063dc7cfda35567c168713 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Tue, 22 May 2018 14:05:10 -0300 Subject: Adds tasks wrapper integrated into todo script --- tasks | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ todo | 7 +++++-- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100755 tasks 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 -- cgit v1.2.3