diff options
| -rwxr-xr-x | uristart | 21 | 
1 files changed, 16 insertions, 5 deletions
| @@ -58,7 +58,14 @@ fi  uri="${1}"  scheme="$(printf "%s\n" "$uri" | uricut -s)" -line="$(urigetline "$uri")" +### original: line="$(urigetline "$uri" < ~/.config/uristart.conf)" +line="$(urigetline "$uri" < ~/.config/uristart.conf)" +if [ "$(urigetline -a "$uri" < ~/.config/uristart.conf)" != "$line" ];then +  line="$(urigetline -a "$uri" < ~/.config/uristart.conf | choose 'which handler')" +fi +if [ ! "$line" ];then +  exit 0 +fi  ### if we do not have a port, we are going to try to get it from their srv records.  if printf "%s\n" "$uri" | urimatch nP >/dev/null;then @@ -92,12 +99,15 @@ if [ "$line" = "" ];then  fi  ### log the uri if it isn't logged already. +### and don't log search: URIs because... why not?  if [ -w ~/.cache/uristart.log ];then #only log if it is writable    if ! cut '-d ' -f1 ~/.cache/uristart.log | grep -Fx "$uri" 2>&1 >/dev/null;then #only log URIs that aren't already listed -    if [ "$2" ];then -      printf "%s %s\n" "$uri" "$2" >> ~/.cache/uristart.log -    else -      printf "%s\n" "$uri" >> ~/.cache/uristart.log +    if printf "%s\n" "$uri" | urimatch rs search >/dev/null;then +      if [ "$2" ];then +        printf "%s %s\n" "$uri" "$2" >> ~/.cache/uristart.log +      else +        printf "%s\n" "$uri" >> ~/.cache/uristart.log +      fi      fi    fi  else @@ -106,6 +116,7 @@ fi  ### do the magic  if [ "$check" = "check" ];then +  ## might put an extra check in here to output to not-terminal if no terminal exists    printf "%s\n" "$(printf "%s\n" "$uri" | sed 's/'\''/'\''\\'\'''\''/g' | uriprintf "$line")"  else    eval "$(printf "%s\n" "$uri" | sed 's/'\''/'\''\\'\'''\''/g' | uriprintf "$line")" | 
