Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GenerateAliasesAndFunctions.sh
- #!/bin/zsh
- # To use: source <thisfile>
- # I keep this first like in a file called GoLinks_pre.sh which loads first
- export go_hardlinks=()
- export go_mylinks=()
- export go_searchlinks=()
- # This is kept in Golinks.sh which loads second
- # LinkedIn Go Links go/<thing>
- # Note these are provided for example only and will not work outside of the LinkedIn internal network
- # Now you could setup your own DNS or URL redirect for "go" and redirect it to whatever you wanted. For example bit.ly links.
- go_hardlinks=(${go_hardlinks[@]}
- 'helpin' 'questions' 'wiki' # Research
- )
- # <thing>
- go_mylinks=(${go_mylinks[@]}
- # Web tools
- 'gmail:https://mail.google.com'
- # Conversions and Experimentation
- 'epochconverter:https://www.epochconverter.com'
- 'jsfiddle:https://jsfiddle.net'
- 'regex101:https://regex101.com'
- 'urlencoder:https://meyerweb.com/eric/tools/dencoder'
- 'keycodes:https://keycode.info'
- 'keycodechart:http://www.foreui.com/articles/Key_Code_Table.htm'
- )
- # <thing> [params]
- go_searchlinks=($go_searchlinks[@]
- # Shopping
- 'amazon:https://www.amazon.com###/s?url=search-alias%3Daps&field-keywords=$$$'
- # Web Searches
- 'google:https://www.google.com###/search?q=$$$'
- 'google_img:https://www.google.com###/search?q=$$$&tbm=isch'
- # Fun
- 'httpcat:https://http.cat/###$$$'
- # Research
- 'colorhex:https://www.color-hex.com###/color/$$$'
- 'macapp:http://macappstore.org/###$$$/'
- 'nasdaq:https://www.nasdaq.com###/symbol/$$$/real-time'
- 'rfc:https://tools.ietf.org###/html/$$$'
- 'stackoverflow:https://stackoverflow.com###/search?q=$$$'
- )
- function _golinks_setup() {
- local go_links app link go_l f
- go_links=(${go_hardlinks[@]} ${go_mylinks[@]} ${go_searchlinks[@]})
- for go_l in ${go_links}; do
- if [[ "a${go_l}" =~ ":" ]]; then
- if [[ "a${go_l}" =~ '\$\$\$' ]]; then
- go_l=${${go_l//\\&/&}//&/\\&} # Escape ambersand, as it expands unintentionally in functions.
- app=$(echo "${${${go_l}%%:*}}") # Bash subsitution for "cut -f1 -d:"
- link=$(echo "${${go_l}#*:}") # Bash subsitution for "cut -f2- -d:"
- # Note the regex requires 4x$ for a match of 3x. Otherwise we keep 1 $.
- # Define function template and static variables
- if [[ "a${go_l}" =~ '###' ]]; then
- f='function ${app}() { if [[ $[#] -eq 0 ]]; then url "${link_s}";else;url "${link}";fi }' # Template function
- f=$(echo "${f}" | sed 's@${link_s}@'"${link%###*}"'@' | sed 's@${link}@'"${link//\#\#\#/}"'@')
- else
- f='function ${app}() { if [[ $[#] -eq 0 ]]; then echo "Error: $0 requires at least 1 argument (search term)";return 1;fi;url "${link}" }' # Template function
- fi
- echo $(echo $f | sed 's@${app}@'"${app}"'@' | sed 's@${link}@'"${link//\#\#\#/}"'@' | sed 's/\$\$\$/$(urlencode "${@}")/') >> GenerateAliasesAndFunctions_Generated.sh
- else
- app=$(echo "${${${go_l}%%:*}}")
- link=$(echo "${${go_l}#*:}")
- echo alias ${app}="'url \"${link}\"'" >> GenerateAliasesAndFunctions_Generated.sh # Define custom alias
- fi
- else
- echo alias go/${go_l}="'url \"http://go/${go_l}\"'" >> GenerateAliasesAndFunctions_Generated.sh # Define simple alias. Only works at Google and LinkedIn
- fi
- done
- }
- _golinks_setup
Add Comment
Please, Sign In to add comment