Created
October 15, 2013 07:20
-
-
Save geoff-nixon/6987777 to your computer and use it in GitHub Desktop.
Inline web browser and web search for your terminal.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/sh ## browse -- Written by Geoff Nixon, 2013. Public domain. | |
| ## Drop path as browse', symlink as 'search' or your favorite search engine. | |
| scheme(){ case "$@" in *://*) echo "$@" | sed -e 's/\:\/\/.*//'; esac } | |
| canonicalize(){ if [ $(scheme "$@") ]; then URI="$@" | |
| elif [ -e $(echo $(pwd)/$(dirname "$@")/$(basename "$@")) ]; then | |
| URI=$(echo file://$(pwd)/$(dirname "$@")/$(basename "$@")) | |
| elif [ -e $(echo $(dirname "$@")/$(basename "$@")) ]; then | |
| URI=$(echo file://$(dirname "$@")/$(basename "$@")) | |
| else URI=$(echo http://"$@"); fi; echo $URI | |
| } | |
| inlinebrowser(){ if [ "$(uname)" = "Darwin" ]; then echo ' | |
| H4sICHBVWlICA3dmbG93LndmbG93AKVWbW/aMBD+zq/gD5g4jpPYE6pkx8lUad2q | |
| vm2TKlUudVk2iCPHVGO/fiYECIZNpeUDSnJ3z91z58f2uJ6VjT0bP5UT9/9LLc/k | |
| xJa6asbB6mUsjZHLQ3NnbT8P2u/s4lIaOVdWmUuja2VsqZq+W+v1Ik0pH2fq9vZc | |
| HGI0aqYmVj3dHXgNxo01ZTU9ixEXsRAcYJFCgLMQAYIYA6IQtAiLAoWYjYPOeRys | |
| Mwf9Otv6+aJ6mqlLaX94+MH1srFqHnwqH400y4AtrJ5Lq03wUdnhnZwt1FA/DzcV | |
| jjbt6ML7Obb9eE0b3kVwnXXN6fxJVbZ8LpXxgCd6PpJ17Wrecho5Tg8tpwf9/LDh | |
| 5JHJZrJphp8dlY5GZ31N7HlVL2xv1p2RQEcC5TFIaSwA5igCLMMpiKIi5RFCHLHC | |
| Q/qysEehWIKwaw8EhCU5wCjNAGdJBEJMIREFoXnCPahDEJjkUSZIBPIoR67xCQKU | |
| FBwkOWSY0ixMSeSBzPRE9oTQ2SJIRzFc/T5gko7aJ+hFVuXjbt2duOzuB97CCzJd | |
| WTfwJrhSjV6YiWoCLhs1mtVG/wzmsqxGLmGvhD1J/FfX75PLV/XYlFYNL3W9qN8o | |
| E90O/WZZqxs57ayl4ztV5gyNg83jGq3WLp/DO3QNd67rbab8owptXJ1b38HWmVLP | |
| 20ozVfbaxXzzcMlqtvtF7Jy/e85pQjzgRaMMm7rhHamiB7wZ1Rsl3s3hoZ3DbuM4 | |
| puwtDrvoolyQi2L7wzum7G1oiHJOBY8BD9MYYMoxYIQiUBDCQ5jBLOV0H8lX9q4K | |
| EYYwEhnIClEATJwqCS8g4DBlLC1YImIP6lg9bj8hJMudtDEFGJIYEJohEGcRjSOY | |
| E8ijfZB9ZQ+OSDsi2Jf2obJPkMj9oC+SUyXtH3JBd2SvipjoqnInqt7X1nqpFmGe | |
| poznIMbQtZcLCmjmGp3mOU9DnidRIQ4U+Wz03OP3ms1zCBzJk3bZtZr0G6bZ5jpt | |
| 7EeuCZsT+p/3oHcf3avQ8hQlb7f+G/XbeivvUMO3V+f7Pi+rQ6TPJtgR79htXtd3 | |
| wr8PX5ASGwoAAA=='| openssl base64 -d | gzcat>/tmp/.browser.wflow | |
| automator -D URI="$@" /tmp/.browser.wflow 2>&1 >/dev/null & | |
| fi | |
| } | |
| identifybrowser(){ if [ "$(uname)" = "Darwin" ]; then case "$@" in | |
| *urora) BUNDLEIDENTIFIER=org.mozilla.aurora ;; | |
| *amino) BUNDLEIDENTIFIER=org.mozilla.camino ;; | |
| *anary) BUNDLEIDENTIFIER=com.google.Chrome.canary ;; | |
| *hrome) BUNDLEIDENTIFIER=com.google.chrome ;; | |
| *hromium) BUNDLEIDENTIFIER=org.chromium.Chromium ;; | |
| *irefox) BUNDLEIDENTIFIER=org.mozilla.firefox ;; | |
| *axthon) BUNDLEIDENTIFIER=com.maxthon.Maxthon ;; | |
| *etscape|*avigator) BUNDLEIDENTIFIER=com.netscape.navigator ;; | |
| *ext) BUNDLEIDENTIFIER=com.operasoftware.OperaNext ;; | |
| *pera) BUNDLEIDENTIFIER=com.operasoftware.opera ;; | |
| *afari) BUNDLEIDENTIFIER=com.apple.safari ;; | |
| *ebkit) BUNDLEIDENTIFIER=org.webkit.nightly.WebKit ;; | |
| esac; echo $BUNDLEIDENTIFIER; fi | |
| } | |
| searchengine(){ case "$SEARCHENGINE" in | |
| *ing*) ENGINE=http://bing.com/search ;; | |
| *ahoo*) ENGINE=http://search.yahoo.com/search ;; | |
| *uck*o*) ENGINE=http://duckduckgo.com/ ;; | |
| *oogle*|*) ENGINE=http://google.com/search ;; | |
| esac; echo $ENGINE | |
| } | |
| browse(){ | |
| if [ "$BROWSER" = "browse" ]; then BROWSER=$WEB_BROWSER; fi | |
| if [ $(identifybrowser "$BROWSER") ]; then | |
| open -b $(identifybrowser "$BROWSER") $(canonicalize "$@") | |
| elif [ x"$BROWSER" != x"" ]; then "$BROWSER" $(canonicalize "$@") | |
| elif [ "$(uname)" = "Darwin" ]; then inlinebrowser $(canonicalize "$@") | |
| else echo "Sorry, I can't find your web browser. Please set BROWSER."; fi | |
| } | |
| search(){ browse "$(searchengine)?q=$(echo "$@"|sed -e 's/\ /\+/g')" ;} | |
| case "$(basename $0)" in | |
| browse) browse "$@" ;; | |
| search) search "$@" ;; | |
| *ing*|*ahoo*|*uck*o*|*oogle*) SEARCHENGINE=$(basename $0) search "$@" ;; | |
| esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment