s-cliβš‘

Web search from the terminal. Just opens in your browser.

Usage:
  s <query> [flags]

Flags:
  -b, --binary string     binary to launch search URI
  -c, --cert string       path to cert.pem for TLS
  -k, --key string        path to key.pem for TLS
  -l, --list-providers    list supported providers
      --list-tags         list available tags
  -o, --output            output only mode
      --port int          server port (default 8080)
  -p, --provider string   search provider (default "google")
  -s, --server            launch web server
  -t, --tag string        search tag
  -v, --verbose           verbose mode
      --version           display version

Installβš‘

go get -v github.com/zquestz/s
cd $GOPATH/src/github.com/zquestz/s
make
make install

Alternatively, you can use [[Homebrew]]:

brew install s-search

Examplesβš‘

Search for puppies on google.

s puppies

Search for a wifi router on amazon

s -p amazon wifi router

Search for rhinos on wikipedia

s -p wikipedia rhinos

Search providers tagged "video" for muppets.

s -t video muppets

Provider/Tag Expansionβš‘

We can do partial matching of provider and tag names. This searches Facebook for hamsters.

s -p fa hamsters

Or toasters on amazon.

s -p am toasters

This searches "tech-news" tagged providers for ssd info.

s -t te ssd

Or shopping sites for blankets.

s -t sh blankets

Provider/Tag Autocompletionβš‘

Autocompletion is supported for providers and tags. To set up autocompletion:

  1. Have s installed
  2. Add the following lines to ~/.bash_profile or ~/.zshrc
if [ -f $GOPATH/src/github.com/zquestz/s/autocomplete/s-completion.bash ]; then
    . $GOPATH/src/github.com/zquestz/s/autocomplete/s-completion.bash
fi

Now you are good to go.

s -p ba<TAB><TAB>
baidu     bandcamp

Fishβš‘

Alternatively, if you use fish, the following will work:

mkdir -p ~/.config/fish/completions
ln -s $GOPATH/src/github.com/zquestz/s/autocomplete/s.fish ~/.config/fish/completions/s.fish

Advancedβš‘

Setup an alias in your .profile for your favorite providers.

alias sa="s -p amazon"
alias sw="s -p wikipedia"

Use w3m to find cats instead of just your default browser.

s -b w3m cats

Search for conspiracy theories in incognito mode.

s -b "chromium --incognito" conspiracy theories
s -b "firefox --private-window" conspiracy theories

Search in a specific subreddit.

s -p reddit /r/cscareerquestions best startups.

Server Modeβš‘

A web interface is also provided. Just pass the -s flag.

Start a server on port 8080 (default).

s -s

Start a server with TLS on port 8443.

s -s -c /path/to/cert.pem -k /path/to/key.pem --port 8443

Feel free to try it out at https://jumps.io/.

Configurationβš‘

To setup your own default configuration just create ~/.config/s/config. The configuration file is in UCL format. JSON is also fully supported as UCL can parse JSON files.

For more information about UCL visit: https://github.com/vstakhov/libucl

The following keys are supported:

Set your default provider to duckduckgo:

provider: duckduckgo

To only search a few providers:

whitelist: [google, amazon, wikipedia]

To exclude providers you don't need:

blacklist: [dumpert]

To add a custom provider:

customProviders [
  {
    name: example
    url: "http://example.com?q=%s"
    tags: [example]
  }
]

Custom providers require a few things: * An alphanumeric name. ^[a-zA-Z0-9_]*$ * A %s token for the query string. * A valid URL scheme.

Supported Providersβš‘

Contributorsβš‘


Links: CLI Tools | MOC - Command Line | Tools - Github | 020 - Development

Sources: