2 files changed,
39 insertions(+),
0 deletions(-)
Author:
Oleksandr Smirnov
olexsmir@gmail.com
Committed at:
2025-06-22 18:48:00 +0300
Parent:
e5f2273
jump to
| M | config/todo/actions/@ |
| A | config/todo/actions/url |
M
config/todo/actions/@
··· 1 1 #!/usr/bin/env bash 2 +export TODOTXT_VERBOSE=0 3 + 2 4 action=$1 3 5 shift 6 + 7 +if [[ $action == "usage" ]]; then 8 + echo "@ [context]" 9 + echo " Lists all tasks with the given context." 10 + echo " If no context is given, lists all tasks categorized by their context." 11 + echo " If task has @someday, it won't be listed." 12 + exit 0 13 +fi 4 14 5 15 CONTEXTS=$(grep -o '[^ ]*@[^ ]\+' "$TODO_FILE" | grep '^@' | sort -u | sed 's/^@//g' ) 6 16 for context in $CONTEXTS ; do
A
config/todo/actions/url
··· 1 +#!/usr/bin/env bash 2 +action=$1 3 +shift 4 + 5 +if [[ $action == "usage" ]]; then 6 + echo "url [task_number] - opens link in the task" 7 + exit 0 8 +fi 9 + 10 +item=$1 11 +if [[ ! "$item" =~ ^[0-9]+$ ]]; then 12 + echo "$item: invalid item number" 13 + exit 1 14 +fi 15 + 16 +URL_REGEX="\b(?:https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(?:\/[\w\-./?%&=:#@+]*)?" 17 +URL=$(sed "$item!d" "$TODO_FILE" | grep -Po "$URL_REGEX") 18 + 19 +if [[ -z "$URL" ]]; then 20 + echo "No URL found in task $item" 21 + exit 1 22 +fi 23 + 24 +if [[ ! "#URL" =~ ^(?!https?:\/\/) ]]; then 25 + URL="https://$URL" 26 +fi 27 + 28 +echo "$URL" 29 +xdg-open "$URL" &>/dev/null