Add surfraw and bookmarks.sh support - dotfiles - leot's dotfiles
 (HTM) hg clone https://bitbucket.org/iamleot/dotfiles
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) changeset e38a205ffaa077c72a22982954cab79cf4c3d2d5
 (DIR) parent b6a70280cbc1d32b23b10d035a12df01cab6327b
 (HTM) Author: Leonardo Taccari <iamleot@gmail.com>
       Date:   Sun,  2 Jun 2019 12:07:00 
       
       Add surfraw and bookmarks.sh support
       
       All elvis and bookmarks are now listed and if possible surfraw is
       run against them, expanding to URL as needed.
       
       Diffstat:
        surf/surf-setprop |  34 +++++++++++++++++++++++++++++++---
        1 files changed, 31 insertions(+), 3 deletions(-)
       ---
       diff -r b6a70280cbc1 -r e38a205ffaa0 surf/surf-setprop
       --- a/surf/surf-setprop Sun Jun 02 00:46:33 2019 +0200
       +++ b/surf/surf-setprop Sun Jun 02 12:07:00 2019 +0200
       @@ -5,8 +5,36 @@
        setprop=$3
        prompt=$4
        
       -prop=$(xprop -id ${winid} ${readprop} | 
       -    sed -e "s/^${readprop}(STRING) = //" -e 's/^"//' -e 's/"$//' |
       -    dmenu -p "${prompt}" -w "${winid}")
       +elvis()
       +{
       +       surfraw -elvi | awk '/--/ { print $1 }' ; bookmarks list | cut -f 1
       +}
       +
       +surfrawify()
       +{
       +       surfraw -p -- $1 2>/dev/null |
       +           awk -v var="$1" '
       +           /No elvis or bookmark with that name/ {
       +               printf("%s\n", var)
       +               exit 0
       +           }
       +
       +           {
       +               printf("%s\n", $0)
       +               exit 0
       +           }
       +           '
       +}
       +
       +if [ "${readprop}" = "_SURF_URI" ]; then
       +       prop=$( { xprop -id ${winid} ${readprop} ; elvis ; } | 
       +           sed -e "s/^${readprop}(STRING) = //" -e 's/^"//' -e 's/"$//' |
       +           dmenu -p "${prompt}" -w "${winid}")
       +       prop=$(surfrawify "${prop}")
       +else
       +       prop=$(xprop -id ${winid} ${readprop} | 
       +           sed -e "s/^${readprop}(STRING) = //" -e 's/^"//' -e 's/"$//' |
       +           dmenu -p "${prompt}" -w "${winid}")
       +fi
        
        xprop -id "${winid}" -f "${setprop}" 8s -set "${setprop}" "${prop}"