all repos

dotfiles @ 4fe83e65e0c5620e114a49152351c7719606ab14

my dotfiles
2 files changed, 39 insertions(+), 0 deletions(-)
todo: add action for opening urls in todos
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2025-06-22 18:48:00 +0300
Parent: e5f2273
M config/todo/actions/@

@@ -1,6 +1,16 @@

#!/usr/bin/env bash +export TODOTXT_VERBOSE=0 + action=$1 shift + +if [[ $action == "usage" ]]; then + echo "@ [context]" + echo " Lists all tasks with the given context." + echo " If no context is given, lists all tasks categorized by their context." + echo " If task has @someday, it won't be listed." + exit 0 +fi CONTEXTS=$(grep -o '[^ ]*@[^ ]\+' "$TODO_FILE" | grep '^@' | sort -u | sed 's/^@//g' ) for context in $CONTEXTS ; do
A config/todo/actions/url

@@ -0,0 +1,29 @@

+#!/usr/bin/env bash +action=$1 +shift + +if [[ $action == "usage" ]]; then + echo "url [task_number] - opens link in the task" + exit 0 +fi + +item=$1 +if [[ ! "$item" =~ ^[0-9]+$ ]]; then + echo "$item: invalid item number" + exit 1 +fi + +URL_REGEX="\b(?:https?:\/\/)?(?:[\w-]+\.)+[a-z]{2,}(?:\/[\w\-./?%&=:#@+]*)?" +URL=$(sed "$item!d" "$TODO_FILE" | grep -Po "$URL_REGEX") + +if [[ -z "$URL" ]]; then + echo "No URL found in task $item" + exit 1 +fi + +if [[ ! "#URL" =~ ^(?!https?:\/\/) ]]; then + URL="https://$URL" +fi + +echo "$URL" +xdg-open "$URL" &>/dev/null