From c56f8995e1f8e47b5edbb1272bde84d9db9e8db6 Mon Sep 17 00:00:00 2001 From: Daniel Mowitz Date: Thu, 25 May 2023 16:36:03 +0200 Subject: [PATCH] Update 'clean-tw.sh' The script is now safer and works for task ids bigger than 99! --- clean-tw.sh | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/clean-tw.sh b/clean-tw.sh index 56dc2bb..64bd7b8 100644 --- a/clean-tw.sh +++ b/clean-tw.sh @@ -1,20 +1,22 @@ #!/bin/sh function get_task_value { - echo "$task_data" | grep "^$1" | sed -E "s/^$1 +//" + echo "$task_data" | grep "^$1" | sed -E "s/^$1 +//" } -ids=$(task limit:none recur | grep -E '^ +[[:digit:]].*[[:alpha:]].*[[:digit:]]$' | sed -E 's/^ +([[:digit:]]+) .*/\1/') - +ids=$(task limit:none recur | grep -E '^ ?[[:digit:]].*[[:alpha:]].*[[:digit:]]$' | sed -E 's/^ ?([[:digit:]]+) .*/\1/') excluded_ids=$(for id in $ids - do - task_data="$(task $id)" - echo "$(get_task_value 'Parent task') $(get_task_value 'Description' | sed 's/ /_/g') $(get_task_value 'Due') $id" - done | sort | rev | uniq -f3 | rev | sed -E 's/.* ([[:digit:]]+)$/\1/') + do + task_data="$(task $id)" + echo "$(get_task_value 'Parent task') $(get_task_value 'Description' | sed 's/ /_/g') $(get_task_value 'Due') $id" + done | sort | rev | uniq -f3 | rev | sed -E 's/.* ([[:digit:]]+)$/\1/') del_ids=$(for id in $excluded_ids $ids - do - echo $id - done | sort | uniq -u) + do + echo $id + done | sort | uniq -u) -task $del_ids del +if [ ! -z "$del_ids" -a "$del_ids" != " " ] +then + task $del_ids del +fi