Put the patterns/openers rules in a separate `rules' file (${PLUMB_RULES}). - plumb - Open certain URL patterns with an ad-hoc opener (plumber)
 (HTM) hg clone https://bitbucket.org/iamleot/plumb
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) changeset 3c971ed08a8f15017695bdb0b7a8c3be50b5dd45
 (DIR) parent 9f0077e54611f25cd12dbf58d63e8363aacc4f11
 (HTM) Author: Leonardo Taccari <iamleot@gmail.com>
       Date:   Tue, 27 Mar 2018 09:38:00 
       
       Put the patterns/openers rules in a separate `rules' file (${PLUMB_RULES}).
       
       Put all patterns/openers rules in a separate file. The path of
       rules file can be defined initializing the ${PLUMB_RULES} environment variable
       (by default it is `~/.plumb/rules').
       Update README accordingly.
       
       Diffstat:
        README |   5 ++-
        plumb  |  72 +----------------------------------------------------------------
        rules  |  70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        3 files changed, 75 insertions(+), 72 deletions(-)
       ---
       diff -r 9f0077e54611 -r 3c971ed08a8f README
       --- a/README    Mon Mar 26 22:58:44 2018 +0200
       +++ b/README    Tue Mar 27 09:38:00 2018 +0200
       @@ -7,11 +7,12 @@
         <http://git.r-36.net/plumber>
        
        To use `plumb' first the ${PLUMB_OPENERS_PATH} (if not defined by
       -default it is `~/.plumb/openers') need to be populated with all
       -the "openers":
       +default it is `~/.plumb/openers') and ${PLUMB_RULES} (if not defined
       +by default it is `~/.plumb/rules') need to be populated:
        
         % mkdir -p ~/.plumb/openers
         % cp openers/* ~/.plumb/openers
       + % cp rules ~/.plumb/rules
        
        After that you can start using `plumb', e.g.:
        
       diff -r 9f0077e54611 -r 3c971ed08a8f plumb
       --- a/plumb     Mon Mar 26 22:58:44 2018 +0200
       +++ b/plumb     Tue Mar 27 09:38:00 2018 +0200
       @@ -29,6 +29,7 @@
        
        
        : ${PLUMB_OPENERS_PATH:=${HOME}/.plumb/openers}
       +: ${PLUMB_RULES:=${HOME}/.plumb/rules}
        : ${PLUMB_NOOPEN:=no}
        
        
       @@ -78,76 +79,7 @@
        
        
               for u in "$@"; do
       -               case $u in
       -               *://*.pdf )
       -                       open "pdf" "$u"
       -                       ;;
       -               *://*.txt | *://*.patch | *://*.diff | *://*.log )
       -                       open "txt" "$u"
       -                       ;;
       -               *://*.jpg | *://*.jpeg | *://*.png | *://*.gif )
       -                       open "image" "$u"
       -                       ;;
       -               *://*.mp3 | *://*.ogg | *://*.m3u8 | *://*.opus | *://*.flac | \
       -               *://*.mp4 | *://*.webm | *://*.gifv | \
       -               *://youtu.be/* | *://www.youtube.com/* | *://youtube.com/* | \
       -               *://vimeo.com/[0-9]* | \
       -               ytdl://* )
       -                       open "media" "$u"
       -                       ;;
       -               gopher://* )
       -                       open "gopher" "$u"
       -                       ;;
       -               *://feed.dilbert.com/*/[0-9]*-[0-9]*-[0-9]* | \
       -               *://dilbert.com/strip/[0-9]*-[0-9]*-[0-9]* )
       -                       open "dilbert" "$u"
       -                       ;;
       -               *://codepad.org/* | *://paste.* | *://pastebin.* | \
       -               *://sprunge.us/* | *://slexy.org/* | *://ix.io/* | \
       -               *://termbin.com/* )
       -                       open "txtweb" "$u"
       -                       ;;
       -               *://mail-index.netbsd.org/* | *://mail-index.NetBSD.org/*  | \
       -               *://www.mail-archive.info/* | *://lkml.org/* | \
       -               *://marc.info/* | *://www.openwall.com/lists/* )
       -                       open "txtweb" "$u"
       -                       ;;
       -               *://gnats.netbsd.org/* | *://gnats.NetBSD.org/* )
       -                       open "txtweb" "$u"
       -                       ;;
       -               *://*/meta/report.html )
       -                       open "txtweb" "$u"
       -                       ;;
       -               *://oppressive-silence.com/comic/* | \
       -               *://nothingsuspicio.us/comics/* )
       -                       open "ogimage" "$u"
       -                       ;;
       -               *://buttersafe.com/*/*/*/* | \
       -               *://feedproxy.google.com/*/Buttersafe/* )
       -                       open "buttersafe" "$u"
       -                       ;;
       -               *://ars.userfriendly.org/cartoons/* )
       -                       open "userfriendly" "$u"
       -                       ;;
       -               arxiv://* )
       -                       open "arxiv" "$u"
       -                       ;;
       -               doi://* )
       -                       open "doi" "$u"
       -                       ;;
       -               cve://* )
       -                       open "cve" "$u"
       -                       ;;
       -               git://* | *://*.git )
       -                       open "git" "$u"
       -                       ;;
       -               ftp://* )
       -                       open "ftp" "$u"
       -                       ;;
       -               http://* | https://* )
       -                       open "web" "$u"
       -                       ;;
       -               esac
       +               . ${PLUMB_RULES}
               done
        
        }
       diff -r 9f0077e54611 -r 3c971ed08a8f rules
       --- /dev/null   Thu Jan 01 00:00:00 1970 +0000
       +++ b/rules     Tue Mar 27 09:38:00 2018 +0200
       @@ -0,0 +1,70 @@
       +case $u in
       +*://*.pdf )
       +       open "pdf" "$u"
       +       ;;
       +*://*.txt | *://*.patch | *://*.diff | *://*.log )
       +       open "txt" "$u"
       +       ;;
       +*://*.jpg | *://*.jpeg | *://*.png | *://*.gif )
       +       open "image" "$u"
       +       ;;
       +*://*.mp3 | *://*.ogg | *://*.m3u8 | *://*.opus | *://*.flac | \
       +*://*.mp4 | *://*.webm | *://*.gifv | \
       +*://youtu.be/* | *://www.youtube.com/* | *://youtube.com/* | \
       +*://vimeo.com/[0-9]* | \
       +ytdl://* )
       +       open "media" "$u"
       +       ;;
       +gopher://* )
       +       open "gopher" "$u"
       +       ;;
       +*://feed.dilbert.com/*/[0-9]*-[0-9]*-[0-9]* | \
       +*://dilbert.com/strip/[0-9]*-[0-9]*-[0-9]* )
       +       open "dilbert" "$u"
       +       ;;
       +*://codepad.org/* | *://paste.* | *://pastebin.* | \
       +*://sprunge.us/* | *://slexy.org/* | *://ix.io/* | \
       +*://termbin.com/* )
       +       open "txtweb" "$u"
       +       ;;
       +*://mail-index.netbsd.org/* | *://mail-index.NetBSD.org/*  | \
       +*://www.mail-archive.info/* | *://lkml.org/* | \
       +*://marc.info/* | *://www.openwall.com/lists/* )
       +       open "txtweb" "$u"
       +       ;;
       +*://gnats.netbsd.org/* | *://gnats.NetBSD.org/* )
       +       open "txtweb" "$u"
       +       ;;
       +*://*/meta/report.html )
       +       open "txtweb" "$u"
       +       ;;
       +*://oppressive-silence.com/comic/* | \
       +*://nothingsuspicio.us/comics/* )
       +       open "ogimage" "$u"
       +       ;;
       +*://buttersafe.com/*/*/*/* | \
       +*://feedproxy.google.com/*/Buttersafe/* )
       +       open "buttersafe" "$u"
       +       ;;
       +*://ars.userfriendly.org/cartoons/* )
       +       open "userfriendly" "$u"
       +       ;;
       +arxiv://* )
       +       open "arxiv" "$u"
       +       ;;
       +doi://* )
       +       open "doi" "$u"
       +       ;;
       +cve://* )
       +       open "cve" "$u"
       +       ;;
       +git://* | *://*.git )
       +       open "git" "$u"
       +       ;;
       +ftp://* )
       +       open "ftp" "$u"
       +       ;;
       +http://* | https://* )
       +       open "web" "$u"
       +       ;;
       +esac