dotfiles/config/todo/actions/url

34 lines
645 B
Bash
Executable file

#!/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 == "" ]]; then
TODOTXT_VERBOSE=0 $TODO_FULL_SH ls @url
exit 0
fi
if [[ ! "$item" =~ ^[0-9]+$ ]]; then
echo "provided [task_number] is invalid: $item"
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