mirror of
https://github.com/olexsmir/dotfiles.git
synced 2026-01-15 08:41:34 +02:00
todo: add action for opening urls in todos
This commit is contained in:
parent
e5f2273627
commit
4fe83e65e0
2 changed files with 39 additions and 0 deletions
|
|
@ -1,7 +1,17 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
export TODOTXT_VERBOSE=0
|
||||||
|
|
||||||
action=$1
|
action=$1
|
||||||
shift
|
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' )
|
CONTEXTS=$(grep -o '[^ ]*@[^ ]\+' "$TODO_FILE" | grep '^@' | sort -u | sed 's/^@//g' )
|
||||||
for context in $CONTEXTS ; do
|
for context in $CONTEXTS ; do
|
||||||
if [[ $context == "someday" ]]; then
|
if [[ $context == "someday" ]]; then
|
||||||
|
|
|
||||||
29
config/todo/actions/url
Executable file
29
config/todo/actions/url
Executable file
|
|
@ -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
|
||||||
Loading…
Add table
Add a link
Reference in a new issue