Giter VIP home page Giter VIP logo

so's Introduction

ci appveyor crates MIT Packaging status

A terminal interface for StackOverflow written in Rust

example usage

While I like the acronym so, this tool would actually be better described as se: an interface to the StackExchange network. In particular one thing that differentiates it from similar tools is that you can simultaneously search any number of sites in the StackExchange network:

# search using your default configuration
$ so how do i reverse a list in python

# search for a latex solution
$ so --site tex how to put tilde over character

# use google to search stackoverflow.com, askubuntu.com, and unix.stackexchange.com
$ so -e google -s askubuntu -s stackoverflow -s unix how do i install linux

installation

Arch Linux

You can install the AUR package so (tracks latest release) or so-git (tracks master), e.g.

yay -S so-git

FreeBSD

You can install the package so via

pkg install so

NetBSD

You can install the package so via

pkgin install so

MacOS

You can install the homebrew formula

brew install so

Alternatively, you can use MacPorts to install so:

sudo port install so

Windows

If you have scoop you can install via the extras bucket:

# add extras bucket
scoop bucket add extras

# install so
scoop install so

from source

For any OS you can install the crate so directly:

# everything but windows
cargo install so

# windows
cargo install so --no-default-features --features windows

For more information on the feature flags, see selecting a backend.

release binaries

Static binaries are available on the releases page for common Linux, MacOS, and Windows targets. You can quickly install the one you need to directory DEST with:

curl --proto '=https' --tlsv1.2 -sSf https://samtay.github.io/so/install.sh \
  | bash -s -- --to DEST

Right now I'm only building the most common targets, but in theory it should be easy to add more, so if you don't see what you are looking for just open an issue and I can add it. Here's a list of the supported targets. If you don't know what you need, you can install rustc and open an issue with the output of rustc -Vv | grep host | cut -d' ' -f2.

documentation

configuration

The configuration files for e.g. a user Alice can be found in the following directories:

  • Linux: /home/alice/.config/so
  • Windows: C:\Users\Alice\AppData\Roaming\Sam Tay\so
  • MacOS: /Users/Alice/Library/Preferences/io.Sam-Tay.so

defaults

The config.yml file lets you specify your CLI defaults. So if you dislike the lucky prompt, always search serverfault.com and unix.stackexchange.com, and want the fastest search engine, you can set your config file like this:

# config.yml
---
api_key: ~
limit: 10
lucky: false
sites:
  - serverfault
  - unix
search_engine: stackexchange

Run so --help to see your current defaults.

themes

In the same directory you'll find colors.toml which is self-documented. The default theme attempts to blend in with your default terminal theme, but you can change it as necessary. In particular, you may want to change the highlight_text if the current selection is difficult to read. There are some themes in the themes directory as well.

system clipboard integration

There's a very primitive integration in place to copy the contents of the currently focused question or answer to the system clipboard. This requires some command in your PATH that can accept stdin and pipe to the clipboard. On mac & windows, this will work out of the box with the default set to pbcopy & clip respectively. On Linux, I've made the assumption that xclip is likely the most popular, but if you use something else (e.g. wl-copy on wayland), you'll need to set the command directly:

# config.yml
---
copy_cmd: copy --option-to-take-stdin

api keys

If you want to use your own StackExchange API Key you can set it via

so --set-api-key <KEY>

You can also choose to use no key by editing your configuration to api_key: ~. If for some reason my API key is globally throttled, you can hit the StackExchange API with no key up to 300 times per day per IP, which I imagine is fine for most users.

search engines

The available search engines are StackExchange, DuckDuckGo, and Google. StackExchange will always be the fastest to search because it doesn't require an additional request or any HTML parsing; however, it is also very primitive. DuckDuckGo is in second place for speed, as its response HTML is much smaller than Google's. I've found that it performs well for my queries, so it is the default search engine.

DuckDuckGo sometimes blocks requests, so it is no longer the default.

multi-site searching

As stated in the docs,

If a single IP is making more than 30 requests a second, new requests will be dropped.

So, don't go crazy with the multi-site search, since it is all done in parallel. In particular, if you specify more than 30 sites, SE will likely ban you for a short time.

selecting a backend

If you're installing from source, you can choose from a number of available backend rendering engines. Note that the package default and windows feature flags do not have an ncurses dependency, for the sake of portability. The default backend is termion, a bindless library in pure Rust which seems to work quite well on Linux, MacOS, BSD, and Redox. The windows backend is by default crossterm, and while its level of support is awesome, it does comes at a price in performance. On my machine, the app kind of flashes between draws. So if you are on Mac, Linux, or Redox, your best bet is to compile with default features which uses the termion backend. If you are on windows, use crossterm, but know it will be slightly jumpy.

If the crossterm folks figure out a fix for allowing ncurses to receive resize events, and you have ncurses installed on your system, then the ncurses and pancurses backends are likely the most performant. Just know that currently if you choose this option, and you run the --lucky prompt, you won't be able to resize the terminal window while the TUI is open.

Available backends:

  • termion-backend
  • ncurses-backend
  • pancurses-backend
  • crossterm-backend

E.g. to use ncurses-backend:

cargo install so --no-default-features --features ncurses-backend

See more information about this choice here.

contributing

Warning: this was my first time writing Rust and there is very likely some non-idiomatic and straight up ugly code throughout this project, so don't come looking here for a good Rust example! That being said, I would love to improve the codebase. Feel free to check out the contributing guidelines and submit any refactoring issues or pull requests.

credits

Credit to my good friend Charles for logo design.

so's People

Contributors

byron avatar dependabot[bot] avatar ehaupt avatar gyscos avatar herbygillot avatar machawk1 avatar public-rant avatar samtay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

so's Issues

Display information about interaction keys

Describe the bug
v0.4.8 & v0.4.7 brought two new hotkeys, both keys for interaction should be listed in the so -h command, or even better with an always visible help hotkey to toggle the interaction keys.

Screenshots
Screenshot 2022-08-22 at 05 17 46

Environment

  • OS: macOS
  • Terminal: default
  • so --version: v0.4.8

PS: Both new keys (o and y) function nicely. Great thanks for the update.

Panic: "thread 'main' panicked at 'attempt to subtract with overflow'"

Describe the bug
The following command results in a the program crashing with the error thread 'main' panicked at 'attempt to subtract with overflow

so how to setup async rust

To Reproduce
Steps to reproduce the behavior:

  1. Type: so how to setup async rust

Environment

  • OS: Ubuntu 18.04
  • Terminal: gnome-terminal
  • so --version: so 0.4.1

Additional context

I was able to make the error go away by doing the following:

diff --git a/src/term.rs b/src/term.rs
index 77f5457..b6d5a07 100644
--- a/src/term.rs
+++ b/src/term.rs
@@ -47,7 +47,7 @@ impl Term {

     /// Print text to stdout
     pub fn print(&self, text: &str) {
-        self.skin.print_text(text)
+        self.skin.print_inline(text)
     }

     /// Print text with error styling to stderr

Going to be honest with you here.. I don't Rust very well (tyring my best to learn!) and I have zero clue what the difference is between print_text and print_inline is. Just wanted to throw that out there though.

Stack trace:

Projects/tools/so RUST_BACKTRACE=full target/debug/so how to setup async rust                                                                                               master 1d ::thread 'main' panicked at 'attempt to subtract with overflow', /home/e/.cargo/registry/src/github.com-1ecc6299db9ec823/minimad-0.6.4/src/compound.rs:117:19
stack backtrace:
   0:     0x55f435415ba5 - backtrace::backtrace::libunwind::trace::h34afbfad7fd770fc
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1:     0x55f435415ba5 - backtrace::backtrace::trace_unsynchronized::h460d522b1619a600
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2:     0x55f435415ba5 - std::sys_common::backtrace::_print_fmt::ha45fac10086813b4
                               at src/libstd/sys_common/backtrace.rs:78
   3:     0x55f435415ba5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hde84f63fcfd0e6de
                               at src/libstd/sys_common/backtrace.rs:59
   4:     0x55f435441aec - core::fmt::write::h540ac4a6a1232abc
                               at src/libcore/fmt/mod.rs:1076
   5:     0x55f43540efd2 - std::io::Write::write_fmt::hc344eafd6e850b4d
                               at src/libstd/io/mod.rs:1537
   6:     0x55f435418260 - std::sys_common::backtrace::_print::h4db88ff15cb5d61d
                               at src/libstd/sys_common/backtrace.rs:62
   7:     0x55f435418260 - std::sys_common::backtrace::print::h5fc39e1b1f610bd3
                               at src/libstd/sys_common/backtrace.rs:49
   8:     0x55f435418260 - std::panicking::default_hook::{{closure}}::h59e55edacb1d974a
                               at src/libstd/panicking.rs:198
   9:     0x55f435417fac - std::panicking::default_hook::heee4c8016dfbf328
                               at src/libstd/panicking.rs:217
  10:     0x55f4354188a3 - std::panicking::rust_panic_with_hook::h8405b6301c79fb5a
                               at src/libstd/panicking.rs:526
  11:     0x55f43541849b - rust_begin_unwind
                               at src/libstd/panicking.rs:437
  12:     0x55f43543f7a1 - core::panicking::panic_fmt::h78830ea6a34e7206
                               at src/libcore/panicking.rs:85
  13:     0x55f43543f6ed - core::panicking::panic::h68e56c2eeba99c8c
                               at src/libcore/panicking.rs:50
  14:     0x55f434c96c0d - minimad::compound::Compound::cut_tail::h65a621fcce14ec17
                               at /home/e/.cargo/registry/src/github.com-1ecc6299db9ec823/minimad-0.6.4/src/compound.rs:117
  15:     0x55f434c7062c - termimad::wrap::hard_wrap_composite::ha144c51dfb0493a2
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/termimad-0.8.24/src/wrap.rs:137
  16:     0x55f434c71116 - termimad::wrap::hard_wrap_lines::hcc2fff69ff958a06
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/termimad-0.8.24/src/wrap.rs:172
  17:     0x55f434c72f2e - termimad::text::FmtText::from_text::hdd93418c5a6ceb6b
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/termimad-0.8.24/src/text.rs:44
  18:     0x55f434c72de0 - termimad::text::FmtText::from::h5006d4ececb9711c
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/termimad-0.8.24/src/text.rs:32
  19:     0x55f434c7f0eb - termimad::skin::MadSkin::term_text::hd65d68486384d1a9
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/termimad-0.8.24/src/skin.rs:208
  20:     0x55f434c7f160 - termimad::skin::MadSkin::print_text::h1276bb441ef97417
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/termimad-0.8.24/src/skin.rs:243
  21:     0x55f4348a5408 - so::term::Term::print::hc2c92c17e3749a58
                               at src/term.rs:50
  22:     0x55f434976b1b - so::run::{{closure}}::hd91685f50a3d1549
                               at src/main.rs:86
  23:     0x55f4348d0da2 - <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll::hc185dde5972d596e
                               at /home/eyehuda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/future/mod.rs:74
  24:     0x55f434a22126 - tokio::runtime::enter::Enter::block_on::{{closure}}::h5f469053301f4b06
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/runtime/enter.rs:163
  25:     0x55f4348fe628 - tokio::coop::with_budget::{{closure}}::h57a6cfb65d473ae4
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/coop.rs:127
  26:     0x55f434953c5f - std::thread::local::LocalKey<T>::try_with::h07bcdc5cb36eec5e
                               at /home/eyehuda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/thread/local.rs:263
  27:     0x55f434953988 - std::thread::local::LocalKey<T>::with::ha8658e5ab000970d
                               at /home/eyehuda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/thread/local.rs:239
  28:     0x55f434a21f09 - tokio::coop::with_budget::h2c8709ab9e7f36d0
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/coop.rs:120
  29:     0x55f434a21f09 - tokio::coop::budget::h23633a17dc8a3c3b
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/coop.rs:96
  30:     0x55f434a21f09 - tokio::runtime::enter::Enter::block_on::hb6e2301a42f9526b
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/runtime/enter.rs:163
  31:     0x55f434a1880e - tokio::runtime::thread_pool::ThreadPool::block_on::he9f5aa50e1b2de2a
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/runtime/thread_pool/mod.rs:82
  32:     0x55f434a04ad1 - tokio::runtime::Runtime::block_on::{{closure}}::h9b78ea3a1e01e1ae
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/runtime/mod.rs:446
  33:     0x55f4349c0348 - tokio::runtime::context::enter::hde3314b2c7b15180
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/runtime/context.rs:72
  34:     0x55f434953116 - tokio::runtime::handle::Handle::enter::hc1f65dd01c598c00
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/runtime/handle.rs:76
  35:     0x55f434a04a18 - tokio::runtime::Runtime::block_on::h49c85d53d2a8405f
                               at /home/eyehuda/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.21/src/runtime/mod.rs:441
  36:     0x55f4349f4fb2 - so::main::h3313791cf880d857
                               at src/main.rs:21
  37:     0x55f43494ed1d - std::rt::lang_start::{{closure}}::hc87592d1bfdb2430
                               at /home/eyehuda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/rt.rs:67
  38:     0x55f435418d48 - std::rt::lang_start_internal::{{closure}}::h7cea099ad4edf1eb
                               at src/libstd/rt.rs:52
  39:     0x55f435418d48 - std::panicking::try::do_call::h42d93372c44025d2
                               at src/libstd/panicking.rs:348
  40:     0x55f435418d48 - std::panicking::try::hb47a4182362d3341
                               at src/libstd/panicking.rs:325
  41:     0x55f435418d48 - std::panic::catch_unwind::h2afcfbf3125915b4
                               at src/libstd/panic.rs:394
  42:     0x55f435418d48 - std::rt::lang_start_internal::h4f696727fe904f48
                               at src/libstd/rt.rs:51
  43:     0x55f43494ece7 - std::rt::lang_start::hf0b996588ea570bf
                               at /home/eyehuda/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/rt.rs:67
  44:     0x55f4349f508a - main
  45:     0x7fce5b547b97 - __libc_start_main
  46:     0x55f43488f19a - _start
  47:                0x0 - <unknown>

Feature Request: More color variable options.

Currently, primary and tertiary are the only options that I'm aware of that affect the box outlines, and it would be nice to be able to have the box outline and the primary text be different colors.

rustup version

While trying to download I encountered the following

package `enum-map v2.4.0` cannot be built because it requires rustc 1.61 or newer, while the currently active rustc version is 1.60.0

I ran rustup update and rustup update stable but no luck in getting the 1.61 version. I am wondering if I can get some help here

Failed to connect?

Describe the bug
I run so mysql create table key vs index and got ✖ Reqwest error: error sending request for url (https://duckduckgo.com/?q=%28site%3Astackoverflow.com%29+mysql+create+table+key+vs+index&kz=-1&kh=-1): error trying to connect: unsuccessful tunnel.
How to solve this problem?

To Reproduce

$ so mysql create table key vs index
✖ Reqwest error: error sending request for url (https://duckduckgo.com/?q=%28site%3Astackoverflow.com%29+mysql+create+table+key+vs+index&kz=-1&kh=-1): error
trying to connect: unsuccessful tunnel

Environment

  • OS: CentOS7, with proxy setted.
  • Terminal: zsh
  • so --version: so 0.4.2

Copy an answer's code snippets into the system clipboard

Sometimes when browsing answers, I must resort to 'tmux' terminal text selection and copy functions for pasting their code into my editor.
It would be nice of 'so' would somehow let you pick a code snippet by number and have it copied into your system clipboard.

Can't handle some UTF-8 text

Describe the bug
When trying to find this amazing art piece with so how to parse html with regex, so panics with byte index 168 is not a char boundary error.

Full error
$ so how to parse html with regex
thread 'main' panicked at 'byte index 168 is not a char boundary; it is inside '\u{329}' (bytes 167..169) of `rè̑ͧ̌aͨl̘̝̙̃ͤ͂̾̆ ZA̡͊͠͝LGΌ ISͮ̂҉̯͈͕̹̘̱ T</b>O͇̹̺ͅƝ̴ȳ̳ TH̘<b>Ë͖́̉ ͠P̯͍̭O̚​N̐Y̡ H̸̡̪̯ͨ͊̽̅̾̎Ȩ̬̩̾͛ͪ̈́̀́͘ ̶̧̨̱̹̭̯ͧ̾ͬCͭ̏ͥͮ`', C:\Users\brigh\.rustup\toolchains\stable-x86_64-pc-windows-msvc\lib/rustlib/src/rust\src\libcore\str\mod.rs:2052:47
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

To Reproduce
Steps to reproduce the behavior:

  1. CLI arguments (including defaults):
  • so how to parse html with regex, no additional arguments
  • config.yml:
---
api_key: ~
limit: 20
lucky: false
sites:
  - stackoverflow
  - superuser
  - serverfault
  - unix
search_engine: duckduckgo # stackexchange, google
  1. TUI input: none

Screenshots

изображение

Environment

  • OS: Windows 10
  • Terminal: Windows Terminal Preview
  • so --version: so 0.3.6
Additional context

Don't question my testing approach. Z̶͕͎͇͝Ä̶͍̝̞́͜L̶͔̤͗̾͠G̶̫̱̾O̸̙̊ ̸̪̩̈͛̚C̶̛͓͈̩̄̂Ȏ̵̙͈͋̍̃M̶̥̙̈́E̸̙̰̠͇̅̃͂̂T̶͎̜̥̱́̔̆̇H̷̛̪͚̝̺͌͘

Doesn't work in Git Bash on Windows

Describe the bug
Trying to run so whatever in Git Bash on Windows having prebuilt binary of so for x86_64 results with a message:
Getting mode failed
✖ Crossterm error: IO-error occurred

To Reproduce
Steps to reproduce the behavior:

  1. download so-v0.3.6-x86_64-pc-windows-msvc.zip and unzip it
  2. run Git Bash (can be obtained by installing Git on Windows and selecting a checkbox in installer)
  3. run "so help me out" in it

Environment

  • OS: Windows 10 Education
  • Terminal: Git Bash
  • so --version: 0.3.6

Additional context
Works fine in PowerShell and CMD, the bug doesn't disappear even with --no-lucky

"✖ DuckDuckGo blocked this request" almost all the time

Describe the bug
Hi! Thank you for creating this awesome tool. I can make some requests but after 4 or 5 requests I get this "duckduckgo blocked" this message all the time. I think it could probably be a block/rate limit but other engines such as google work just fine. I can use stackexchange/google but the duckduckgo search results are far superior to those.

To Reproduce
Steps to reproduce the behavior:

  1. Do 5+ requests using the default settings

Environment

  • OS: NixOS
  • Terminal: Kitty
  • so --version: 0.4.5

Is there a way to customize the local list of sites?

We have a private enterprise instance of StackExchange. Is there a way to search that specifically, or to edit the local list of sites to add the enterprise instance?

(More of a question / feature request than a bug)

Google blocking search in macos

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. CLI arguments (including defaults):
  2. TUI input:

Screenshots
If applicable, add screenshots to help explain your problem.

Environment

  • OS:
  • Terminal:
  • so --version:

Additional context
Add any other context about the problem here.

when i use ducktogo it work.

Can not select text in any of the panes

Can not select text, to copy and paste, in any of the panes.

Steps to reproduce the behavior
Do any search, try to select text in any of the panes with the mouse. Nothing happens, the text is not selected, nor copied to clipboard.

  • OS: Void LInux x86_64
  • Terminal: urxvt, alacritty, with and without tmux.
  • so --version: so 0.4.2

The build for this broke, due to external crate change.

Please check this ticket for some details. From what it looks like, so is also affected by this.

The claim is that this commit broke it.

It surfaces as follows (vanilla cargo install so):

error[E0432]: unresolved import `syn::export`
  --> /home/oliver/.cargo/registry/src/github.com-1ecc6299db9ec823/enumset_derive-0.5.0/src/lib.rs:10:10
   |
10 | use syn::export::Span;
   |          ^^^^^^ could not find `export` in `syn`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0432`.
error: could not compile `enumset_derive`

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `so v0.4.2`, intermediate artifacts can be found at `/tmp/cargo-installJiloc8`

Caused by:
  build failed

This pull request is said to work around the issue by pinning the syn crate to version:

syn = "=1.0.57"

Best regards and thanks for your program.

cant build

Ubuntu 20.04 can't install your package

~$ cargo install so
    Updating crates.io index
  Downloaded so v0.4.2
  Downloaded 1 crate (3.9 MB) in 4.56s
  Installing so v0.4.2
  Downloaded futures v0.3.6
  Downloaded thiserror v1.0.21
  Downloaded tokio v0.2.22
  Downloaded crossterm v0.17.7
  Downloaded rayon v1.4.1
  Downloaded directories v2.0.2
  Downloaded reqwest v0.10.8
  Downloaded percent-encoding v2.1.0
  Downloaded pulldown-cmark v0.7.2
  Downloaded lazy_static v1.4.0
  Downloaded scraper v0.12.0
  Downloaded minimad v0.6.5
  Downloaded serde_yaml v0.8.13
  Downloaded cursive v0.15.0
  Downloaded serde v1.0.116
  Downloaded serde_json v1.0.58
  Downloaded termimad v0.8.26
  Downloaded clap v2.33.3
  Downloaded futures-util v0.3.6
  Downloaded libc v0.2.79
  Downloaded unicode-width v0.1.8
  Downloaded ahash v0.3.8
  Downloaded signal-hook v0.1.16
  Downloaded futures-core v0.3.6
  Downloaded hyper v0.13.8
  Downloaded bytes v0.5.6
  Downloaded enumset v1.0.1
  Downloaded cursive_core v0.1.1
  Downloaded serde_urlencoded v0.6.1
  Downloaded autocfg v1.0.1
  Downloaded linked-hash-map v0.5.3
  Downloaded pin-project-lite v0.1.10
  Downloaded cfg-if v0.1.10
  Downloaded crossbeam-deque v0.7.3
  Downloaded yaml-rust v0.4.4
  Downloaded futures-executor v0.3.6
  Downloaded hyper-tls v0.4.3
  Downloaded futures-task v0.3.6
  Downloaded async-compression v0.3.5
  Downloaded futures-sink v0.3.6
  Downloaded either v1.6.1
  Downloaded memchr v2.3.3
  Downloaded log v0.4.11
  Downloaded ipnet v2.3.0
  Downloaded tokio-tls v0.3.1
  Downloaded futures-io v0.3.6
  Downloaded mime v0.3.16
  Downloaded bitflags v1.2.1
  Downloaded parking_lot v0.10.2
  Downloaded futures-channel v0.3.6
  Downloaded base64 v0.12.3
  Downloaded termion v1.5.5
  Downloaded mime_guess v2.0.3
  Downloaded matches v0.1.8
  Downloaded dirs-sys v0.3.5
  Downloaded unicase v2.6.0
  Downloaded getopts v0.2.21
  Downloaded signal-hook-registry v1.2.1
  Downloaded native-tls v0.2.4
  Downloaded num_cpus v1.13.0
  Downloaded http-body v0.3.1
  Downloaded rayon-core v1.8.1
  Downloaded dtoa v0.4.6
  Downloaded thiserror-impl v1.0.21
  Downloaded mio-uds v0.6.8
  Downloaded slab v0.4.2
  Downloaded cssparser v0.27.2
  Downloaded smallvec v1.4.2
  Downloaded tokio-macros v0.2.5
  Downloaded html5ever v0.25.1
  Downloaded mio v0.7.2
  Downloaded fnv v1.0.7
  Downloaded http v0.2.1
  Downloaded iovec v0.1.4
  Downloaded ego-tree v0.6.2
  Downloaded unicode-segmentation v1.6.0
  Downloaded mio v0.6.22
  Downloaded selectors v0.22.0
  Downloaded tendril v0.4.1
  Downloaded crossbeam-channel v0.4.4
  Downloaded url v2.1.1
  Downloaded encoding_rs v0.8.24
  Downloaded proc-macro-hack v0.5.18
  Downloaded futures-macro v0.3.6
  Downloaded textwrap v0.11.0
  Downloaded atty v0.2.14
  Downloaded ansi_term v0.11.0
  Downloaded lock_api v0.3.4
  Downloaded strsim v0.8.0
  Downloaded num v0.3.0
  Downloaded pin-utils v0.1.0
  Downloaded const-random v0.1.10
  Downloaded version_check v0.9.2
  Downloaded numtoa v0.1.0
  Downloaded crossbeam-epoch v0.8.2
  Downloaded owning_ref v0.4.1
  Downloaded httpdate v0.3.2
  Downloaded want v0.3.0
  Downloaded num-traits v0.2.12
  Downloaded httparse v1.3.4
  Downloaded once_cell v1.4.1
  Downloaded chrono v0.4.19
  Downloaded parking_lot_core v0.7.2
  Downloaded arc-swap v0.4.7
  Downloaded maybe-uninit v2.0.0
  Downloaded openssl v0.10.30
  Downloaded socket2 v0.3.15
  Downloaded crossbeam-utils v0.7.2
  Downloaded pin-project v0.4.26
  Downloaded phf v0.8.0
  Downloaded vec_map v0.8.2
  Downloaded openssl-sys v0.9.58
  Downloaded enum-map v0.6.3
  Downloaded serde_derive v1.0.116
  Downloaded proc-macro-nested v0.1.6
  Downloaded precomputed-hash v0.1.1
  Downloaded xi-unicode v0.2.1
  Downloaded ahash v0.4.5
  Downloaded fxhash v0.2.1
  Downloaded toml v0.5.6
  Downloaded quote v1.0.7
  Downloaded enumset_derive v0.5.0
  Downloaded proc-macro2 v1.0.24
  Downloaded tower-service v0.3.0
  Downloaded itoa v0.4.6
  Downloaded net2 v0.2.35
  Downloaded openssl-probe v0.1.2
  Downloaded mac v0.1.1
  Downloaded thin-slice v0.1.1
  Downloaded cssparser-macros v0.6.0
  Downloaded dtoa-short v0.3.2
  Downloaded ryu v1.0.5
  Downloaded crossbeam v0.7.3
  Downloaded phf_codegen v0.8.0
  Downloaded markup5ever v0.10.0
  Downloaded servo_arc v0.1.1
  Downloaded derive_more v0.99.11
  Downloaded flate2 v1.0.18
  Downloaded h2 v0.2.6
  Downloaded syn v1.0.42
  Downloaded pin-project-internal v0.4.26
  Downloaded scopeguard v1.1.0
  Downloaded const-random-macro v0.1.10
  Downloaded time v0.1.44
  Downloaded darling v0.10.2
  Downloaded unicode-xid v0.2.1
  Downloaded num-integer v0.1.43
  Downloaded stable_deref_trait v1.2.0
  Downloaded num-complex v0.3.0
  Downloaded foreign-types v0.3.2
  Downloaded memoffset v0.5.6
  Downloaded try-lock v0.2.3
  Downloaded crossbeam-queue v0.2.3
  Downloaded phf_generator v0.8.0
  Downloaded cc v1.0.60
  Downloaded phf_macros v0.8.0
  Downloaded num-iter v0.1.41
  Downloaded string_cache_codegen v0.5.1
  Downloaded futf v0.1.4
  Downloaded string_cache v0.8.0
  Downloaded utf-8 v0.7.5
  Downloaded nodrop v0.1.14
  Downloaded pkg-config v0.3.18
  Downloaded phf_shared v0.8.0
  Downloaded num-rational v0.3.0
  Downloaded idna v0.2.0
  Downloaded byteorder v1.3.4
  Downloaded array-macro v1.0.5
  Downloaded enum-map-derive v0.4.3
  Downloaded crc32fast v1.2.0
  Downloaded new_debug_unreachable v1.0.4
  Downloaded unicode-bidi v0.3.4
  Downloaded tokio-util v0.3.1
  Downloaded unicode-normalization v0.1.13
  Downloaded getrandom v0.2.0
  Downloaded indexmap v1.6.0
  Downloaded miniz_oxide v0.4.2
  Downloaded foreign-types-shared v0.1.1
  Downloaded rand v0.7.3
  Downloaded darling_macro v0.10.2
  Downloaded darling_core v0.10.2
  Downloaded siphasher v0.3.3
  Downloaded getrandom v0.1.15
  Downloaded rand_core v0.5.1
  Downloaded rand_chacha v0.2.2
  Downloaded hashbrown v0.9.1
  Downloaded tinyvec v0.3.4
  Downloaded rand_pcg v0.2.1
  Downloaded adler v0.2.3
  Downloaded strsim v0.9.3
  Downloaded ppv-lite86 v0.2.9
  Downloaded ident_case v1.0.1
  Downloaded tracing v0.1.21
  Downloaded tracing-core v0.1.17
   Compiling libc v0.2.79
   Compiling cfg-if v0.1.10
   Compiling autocfg v1.0.1
   Compiling proc-macro2 v1.0.24
   Compiling unicode-xid v0.2.1
   Compiling syn v1.0.42
   Compiling lazy_static v1.4.0
   Compiling log v0.4.11
   Compiling proc-macro-hack v0.5.18
   Compiling getrandom v0.1.15
   Compiling memchr v2.3.3
   Compiling fnv v1.0.7
   Compiling siphasher v0.3.3
   Compiling ppv-lite86 v0.2.9
   Compiling serde_derive v1.0.116
   Compiling serde v1.0.116
   Compiling itoa v0.4.6
   Compiling slab v0.4.2
   Compiling futures-core v0.3.6
   Compiling bitflags v1.2.1
   Compiling arc-swap v0.4.7
   Compiling pin-project-internal v0.4.26
   Compiling maybe-uninit v2.0.0
   Compiling proc-macro-nested v0.1.6
   Compiling futures-sink v0.3.6
   Compiling bytes v0.5.6
   Compiling once_cell v1.4.1
   Compiling pkg-config v0.3.18
   Compiling cc v1.0.60
   Compiling pin-project-lite v0.1.10
   Compiling pin-utils v0.1.0
   Compiling ryu v1.0.5
   Compiling scopeguard v1.1.0
   Compiling futures-io v0.3.6
   Compiling getrandom v0.2.0
   Compiling matches v0.1.8
   Compiling version_check v0.9.2
   Compiling serde_json v1.0.58
   Compiling smallvec v1.4.2
   Compiling dtoa v0.4.6
   Compiling ident_case v1.0.1
   Compiling strsim v0.9.3
   Compiling unicode-width v0.1.8
   Compiling stable_deref_trait v1.2.0
   Compiling openssl v0.10.30
   Compiling new_debug_unreachable v1.0.4
   Compiling foreign-types-shared v0.1.1
   Compiling mac v0.1.1
   Compiling tinyvec v0.3.4
   Compiling hashbrown v0.9.1
   Compiling precomputed-hash v0.1.1
   Compiling crc32fast v1.2.0
   Compiling native-tls v0.2.4
   Compiling httparse v1.3.4
   Compiling byteorder v1.3.4
   Compiling adler v0.2.3
   Compiling rayon-core v1.8.1
   Compiling try-lock v0.2.3
   Compiling utf-8 v0.7.5
   Compiling openssl-probe v0.1.2
   Compiling tower-service v0.3.0
   Compiling array-macro v1.0.5
   Compiling percent-encoding v2.1.0
   Compiling httpdate v0.3.2
   Compiling encoding_rs v0.8.24
   Compiling nodrop v0.1.14
   Compiling pulldown-cmark v0.7.2
   Compiling mime v0.3.16
   Compiling linked-hash-map v0.5.3
   Compiling numtoa v0.1.0
   Compiling unicode-segmentation v1.6.0
   Compiling thin-slice v0.1.1
   Compiling xi-unicode v0.2.1
   Compiling strsim v0.8.0
   Compiling ansi_term v0.11.0
   Compiling either v1.6.1
   Compiling ego-tree v0.6.2
   Compiling vec_map v0.8.2
   Compiling ipnet v2.3.0
   Compiling base64 v0.12.3
   Compiling tracing-core v0.1.17
   Compiling minimad v0.6.5
   Compiling phf_shared v0.8.0
   Compiling crossbeam-utils v0.7.2
   Compiling num-traits v0.2.12
   Compiling num-integer v0.1.43
   Compiling memoffset v0.5.6
   Compiling crossbeam-epoch v0.8.2
   Compiling indexmap v1.6.0
   Compiling num-rational v0.3.0
   Compiling num-iter v0.1.41
   Compiling miniz_oxide v0.4.2
   Compiling rayon v1.4.1
   Compiling futures-channel v0.3.6
   Compiling futures-task v0.3.6
   Compiling http v0.2.1
   Compiling lock_api v0.3.4
   Compiling unicode-bidi v0.3.4
   Compiling dtoa-short v0.3.2
   Compiling getopts v0.2.21
   Compiling textwrap v0.11.0
   Compiling owning_ref v0.4.1
   Compiling foreign-types v0.3.2
   Compiling futf v0.1.4
   Compiling unicode-normalization v0.1.13
   Compiling unicase v2.6.0
   Compiling servo_arc v0.1.1
   Compiling yaml-rust v0.4.4
   Compiling openssl-sys v0.9.58
   Compiling tendril v0.4.1
   Compiling http-body v0.3.1
   Compiling tracing v0.1.21
   Compiling want v0.3.0
   Compiling idna v0.2.0
   Compiling quote v1.0.7
   Compiling signal-hook-registry v1.2.1
   Compiling iovec v0.1.4
   Compiling net2 v0.2.35
   Compiling num_cpus v1.13.0
   Compiling mio v0.7.2
   Compiling socket2 v0.3.15
   Compiling time v0.1.44
   Compiling parking_lot_core v0.7.2
   Compiling termion v1.5.5
   Compiling dirs-sys v0.3.5
   Compiling atty v0.2.14
   Compiling fxhash v0.2.1
   Compiling url v2.1.1
   Compiling crossbeam-channel v0.4.4
   Compiling crossbeam-queue v0.2.3
error: failed to run custom build command for `openssl-sys v0.9.58`

Caused by:
  process didn't exit successfully: `/tmp/cargo-install7JC6fL/release/build/openssl-sys-077631b23faabe86/build-script-main` (exit code: 101)
--- stdout
cargo:rustc-cfg=const_fn
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=OPENSSL_LIB_DIR
OPENSSL_LIB_DIR unset
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=OPENSSL_INCLUDE_DIR
OPENSSL_INCLUDE_DIR unset
cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR
X86_64_UNKNOWN_LINUX_GNU_OPENSSL_DIR unset
cargo:rerun-if-env-changed=OPENSSL_DIR
OPENSSL_DIR unset
cargo:rerun-if-env-changed=OPENSSL_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=OPENSSL_STATIC
cargo:rerun-if-env-changed=OPENSSL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
run pkg_config fail: "`\"pkg-config\" \"--libs\" \"--cflags\" \"openssl\"` did not exit successfully: exit code: 1\n--- stderr\nPackage openssl was not found in the pkg-config search path.\nPerhaps you should add the directory containing `openssl.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'openssl\' found\n"

--- stderr
thread 'main' panicked at '

Could not find directory of OpenSSL installation, and this `-sys` crate cannot
proceed without this knowledge. If OpenSSL is installed and this crate had
trouble finding it,  you can set the `OPENSSL_DIR` environment variable for the
compilation process.

Make sure you also have the development packages of openssl installed.
For example, `libssl-dev` on Ubuntu or `openssl-devel` on Fedora.

If you're in a situation where you think the directory *should* be found
automatically, please open a bug at https://github.com/sfackler/rust-openssl
and include information about your system as well as this message.

$HOST = x86_64-unknown-linux-gnu
$TARGET = x86_64-unknown-linux-gnu
openssl-sys = 0.9.58

', /home/vos-mottor/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-sys-0.9.58/build/find_normal.rs:157:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

warning: build failed, waiting for other jobs to finish...
error: failed to compile `so v0.4.2`, intermediate artifacts can be found at `/tmp/cargo-install7JC6fL`

Caused by:
  build failed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.