35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/env zsh
 | 
						|
 | 
						|
# Performs an online search. Uses the last used provider, otherwise prompts for
 | 
						|
# one with skim.
 | 
						|
 | 
						|
provider="$1"; shift
 | 
						|
query="$*"
 | 
						|
 | 
						|
typeset -A providers
 | 
						|
providers+=('DuckDuckGo' 'https://duckduckgo.com/?q=%s')
 | 
						|
providers+=('DevDocs.io' 'http://devdocs.io/#q=%s')
 | 
						|
providers+=('Google search' 'https://google.com/search?q=%s')
 | 
						|
providers+=('Google images' 'https://google.com/images?q=%s')
 | 
						|
providers+=('Google maps' 'https://maps.google.com/maps?q=%s')
 | 
						|
providers+=('Project Gutenberg' 'http://www.gutenberg.org/ebooks/search/?query=%s')
 | 
						|
providers+=('StackOverflow' 'https://stackoverflow.com/search?q=%s')
 | 
						|
providers+=('Github' 'https://github.com/search?ref=simplesearch&q=%s')
 | 
						|
providers+=('Youtube' 'https://youtube.com/results?aq=f&oq=&search_query=%s')
 | 
						|
providers+=('Wolfram alpha' 'https://wolframalpha.com/input/?i=%s')
 | 
						|
providers+=('Wikipedia' 'https://wikipedia.org/search-redirect.php?language=en&go=Go&search=%s')
 | 
						|
 | 
						|
pick=$(printf "%s\n" "${(@k)providers}" | sk --query="$provider" --prompt='provider > ' -1 -0)
 | 
						|
if [[ -z $pick ]]; then
 | 
						|
  >&2 echo 'No provider selected. Aborting.'
 | 
						|
  exit 1
 | 
						|
elif [[ -z ${providers[$pick]} ]]; then
 | 
						|
  >&2 echo 'No provider matched that query. Aborting.'
 | 
						|
  exit 2
 | 
						|
fi
 | 
						|
 | 
						|
url=$(printf "${providers[$pick]}\n" $(uri<<<"$query"))
 | 
						|
 | 
						|
echo "Opening $url"
 | 
						|
open $url
 |