├── .gitignore ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── logo ├── blossom.jpg ├── logo.png └── logo.xcf ├── src ├── lib.rs └── main.rs └── tests └── unit.rs /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | **/*.rs.bk 3 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: rust 2 | sudo: required 3 | dist: trusty 4 | addons: 5 | apt: 6 | packages: 7 | - libssl-dev 8 | cache: 9 | cargo: true 10 | rust: 11 | # - nightly 12 | - beta 13 | - stable 14 | matrix: 15 | allow_failures: 16 | - rust: nightly 17 | 18 | before_cache: | 19 | if [[ "$TRAVIS_RUST_VERSION" == nightly ]]; then 20 | RUSTFLAGS="--cfg procmacro2_semver_exempt" cargo install cargo-tarpaulin -f 21 | fi 22 | 23 | script: 24 | - cargo clean 25 | - cargo build 26 | - cargo test 27 | 28 | 29 | after_success: | 30 | if [[ "$TRAVIS_RUST_VERSION" == nightly ]]; then 31 | # Uncomment the following line for coveralls.io 32 | # cargo tarpaulin --ciserver travis-ci --coveralls $TRAVIS_JOB_ID 33 | 34 | # Uncomment the following two lines create and upload a report for codecov.io 35 | cargo tarpaulin --out Xml 36 | bash <(curl -s https://codecov.io/bash) 37 | fi 38 | 39 | before_deploy: 40 | - tar -czf $PACKAGE -C target/$TARGET/release/ $NAME 41 | # Set up git user name and tag this commit 42 | - git config --local user.name "ajmwagar" 43 | - git config --local user.email "ajmw.subs@gmail.com" 44 | - export TRAVIS_TAG=${TRAVIS_TAG:-$(date +'%Y%m%d%H%M%S')-$(git log --format=%h -1)} 45 | - git tag $TRAVIS_TAG 46 | 47 | deploy: 48 | provider: releases 49 | api_key: $DEPLOYKEY 50 | file: ${PACKAGE} 51 | skip_cleanup: true 52 | on: 53 | tags: true 54 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at ajmw.subs@gmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "adler32" 5 | version = "1.0.3" 6 | source = "registry+https://github.com/rust-lang/crates.io-index" 7 | 8 | [[package]] 9 | name = "aho-corasick" 10 | version = "0.7.3" 11 | source = "registry+https://github.com/rust-lang/crates.io-index" 12 | dependencies = [ 13 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 14 | ] 15 | 16 | [[package]] 17 | name = "ansi_term" 18 | version = "0.11.0" 19 | source = "registry+https://github.com/rust-lang/crates.io-index" 20 | dependencies = [ 21 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 22 | ] 23 | 24 | [[package]] 25 | name = "argon2rs" 26 | version = "0.2.5" 27 | source = "registry+https://github.com/rust-lang/crates.io-index" 28 | dependencies = [ 29 | "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)", 30 | "scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 31 | ] 32 | 33 | [[package]] 34 | name = "arrayvec" 35 | version = "0.4.10" 36 | source = "registry+https://github.com/rust-lang/crates.io-index" 37 | dependencies = [ 38 | "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", 39 | ] 40 | 41 | [[package]] 42 | name = "atty" 43 | version = "0.2.11" 44 | source = "registry+https://github.com/rust-lang/crates.io-index" 45 | dependencies = [ 46 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 47 | "termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 48 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 49 | ] 50 | 51 | [[package]] 52 | name = "autocfg" 53 | version = "0.1.2" 54 | source = "registry+https://github.com/rust-lang/crates.io-index" 55 | 56 | [[package]] 57 | name = "backtrace" 58 | version = "0.3.15" 59 | source = "registry+https://github.com/rust-lang/crates.io-index" 60 | dependencies = [ 61 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 62 | "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)", 63 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 64 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 65 | "rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 66 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 67 | ] 68 | 69 | [[package]] 70 | name = "backtrace-sys" 71 | version = "0.1.28" 72 | source = "registry+https://github.com/rust-lang/crates.io-index" 73 | dependencies = [ 74 | "cc 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)", 75 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 76 | ] 77 | 78 | [[package]] 79 | name = "base64" 80 | version = "0.10.1" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | dependencies = [ 83 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 84 | ] 85 | 86 | [[package]] 87 | name = "bitflags" 88 | version = "1.0.4" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | 91 | [[package]] 92 | name = "blake2-rfc" 93 | version = "0.2.18" 94 | source = "registry+https://github.com/rust-lang/crates.io-index" 95 | dependencies = [ 96 | "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 97 | "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 98 | ] 99 | 100 | [[package]] 101 | name = "bliss" 102 | version = "0.1.2" 103 | dependencies = [ 104 | "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", 105 | "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", 106 | "reqwest 0.9.16 (registry+https://github.com/rust-lang/crates.io-index)", 107 | ] 108 | 109 | [[package]] 110 | name = "build_const" 111 | version = "0.2.1" 112 | source = "registry+https://github.com/rust-lang/crates.io-index" 113 | 114 | [[package]] 115 | name = "byteorder" 116 | version = "1.3.1" 117 | source = "registry+https://github.com/rust-lang/crates.io-index" 118 | 119 | [[package]] 120 | name = "bytes" 121 | version = "0.4.12" 122 | source = "registry+https://github.com/rust-lang/crates.io-index" 123 | dependencies = [ 124 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 125 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 126 | ] 127 | 128 | [[package]] 129 | name = "cc" 130 | version = "1.0.36" 131 | source = "registry+https://github.com/rust-lang/crates.io-index" 132 | 133 | [[package]] 134 | name = "cfg-if" 135 | version = "0.1.7" 136 | source = "registry+https://github.com/rust-lang/crates.io-index" 137 | 138 | [[package]] 139 | name = "clap" 140 | version = "2.33.0" 141 | source = "registry+https://github.com/rust-lang/crates.io-index" 142 | dependencies = [ 143 | "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 144 | "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", 145 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 146 | "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", 147 | "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", 148 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 149 | "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 150 | ] 151 | 152 | [[package]] 153 | name = "cloudabi" 154 | version = "0.0.3" 155 | source = "registry+https://github.com/rust-lang/crates.io-index" 156 | dependencies = [ 157 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 158 | ] 159 | 160 | [[package]] 161 | name = "constant_time_eq" 162 | version = "0.1.3" 163 | source = "registry+https://github.com/rust-lang/crates.io-index" 164 | 165 | [[package]] 166 | name = "cookie" 167 | version = "0.11.1" 168 | source = "registry+https://github.com/rust-lang/crates.io-index" 169 | dependencies = [ 170 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 171 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 172 | ] 173 | 174 | [[package]] 175 | name = "cookie_store" 176 | version = "0.5.1" 177 | source = "registry+https://github.com/rust-lang/crates.io-index" 178 | dependencies = [ 179 | "cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", 180 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 181 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 182 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 183 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 184 | "publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", 185 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 186 | "serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 187 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 188 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 189 | "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 190 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 191 | ] 192 | 193 | [[package]] 194 | name = "core-foundation" 195 | version = "0.6.4" 196 | source = "registry+https://github.com/rust-lang/crates.io-index" 197 | dependencies = [ 198 | "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 199 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 200 | ] 201 | 202 | [[package]] 203 | name = "core-foundation-sys" 204 | version = "0.6.2" 205 | source = "registry+https://github.com/rust-lang/crates.io-index" 206 | 207 | [[package]] 208 | name = "crc" 209 | version = "1.8.1" 210 | source = "registry+https://github.com/rust-lang/crates.io-index" 211 | dependencies = [ 212 | "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 213 | ] 214 | 215 | [[package]] 216 | name = "crc32fast" 217 | version = "1.2.0" 218 | source = "registry+https://github.com/rust-lang/crates.io-index" 219 | dependencies = [ 220 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 221 | ] 222 | 223 | [[package]] 224 | name = "crossbeam-deque" 225 | version = "0.7.1" 226 | source = "registry+https://github.com/rust-lang/crates.io-index" 227 | dependencies = [ 228 | "crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 229 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 230 | ] 231 | 232 | [[package]] 233 | name = "crossbeam-epoch" 234 | version = "0.7.1" 235 | source = "registry+https://github.com/rust-lang/crates.io-index" 236 | dependencies = [ 237 | "arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)", 238 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 239 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 240 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 241 | "memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 242 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 243 | ] 244 | 245 | [[package]] 246 | name = "crossbeam-queue" 247 | version = "0.1.2" 248 | source = "registry+https://github.com/rust-lang/crates.io-index" 249 | dependencies = [ 250 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 251 | ] 252 | 253 | [[package]] 254 | name = "crossbeam-utils" 255 | version = "0.6.5" 256 | source = "registry+https://github.com/rust-lang/crates.io-index" 257 | dependencies = [ 258 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 259 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 260 | ] 261 | 262 | [[package]] 263 | name = "dirs" 264 | version = "1.0.5" 265 | source = "registry+https://github.com/rust-lang/crates.io-index" 266 | dependencies = [ 267 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 268 | "redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 269 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 270 | ] 271 | 272 | [[package]] 273 | name = "dtoa" 274 | version = "0.4.4" 275 | source = "registry+https://github.com/rust-lang/crates.io-index" 276 | 277 | [[package]] 278 | name = "encoding_rs" 279 | version = "0.8.17" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | dependencies = [ 282 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 283 | ] 284 | 285 | [[package]] 286 | name = "error-chain" 287 | version = "0.12.1" 288 | source = "registry+https://github.com/rust-lang/crates.io-index" 289 | dependencies = [ 290 | "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", 291 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 292 | ] 293 | 294 | [[package]] 295 | name = "failure" 296 | version = "0.1.5" 297 | source = "registry+https://github.com/rust-lang/crates.io-index" 298 | dependencies = [ 299 | "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", 300 | "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 301 | ] 302 | 303 | [[package]] 304 | name = "failure_derive" 305 | version = "0.1.5" 306 | source = "registry+https://github.com/rust-lang/crates.io-index" 307 | dependencies = [ 308 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 309 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 310 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 311 | "synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 312 | ] 313 | 314 | [[package]] 315 | name = "flate2" 316 | version = "1.0.7" 317 | source = "registry+https://github.com/rust-lang/crates.io-index" 318 | dependencies = [ 319 | "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 320 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 321 | "miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 322 | ] 323 | 324 | [[package]] 325 | name = "fnv" 326 | version = "1.0.6" 327 | source = "registry+https://github.com/rust-lang/crates.io-index" 328 | 329 | [[package]] 330 | name = "foreign-types" 331 | version = "0.3.2" 332 | source = "registry+https://github.com/rust-lang/crates.io-index" 333 | dependencies = [ 334 | "foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 335 | ] 336 | 337 | [[package]] 338 | name = "foreign-types-shared" 339 | version = "0.1.1" 340 | source = "registry+https://github.com/rust-lang/crates.io-index" 341 | 342 | [[package]] 343 | name = "fuchsia-cprng" 344 | version = "0.1.1" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | 347 | [[package]] 348 | name = "fuchsia-zircon" 349 | version = "0.3.3" 350 | source = "registry+https://github.com/rust-lang/crates.io-index" 351 | dependencies = [ 352 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 353 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 354 | ] 355 | 356 | [[package]] 357 | name = "fuchsia-zircon-sys" 358 | version = "0.3.3" 359 | source = "registry+https://github.com/rust-lang/crates.io-index" 360 | 361 | [[package]] 362 | name = "futures" 363 | version = "0.1.27" 364 | source = "registry+https://github.com/rust-lang/crates.io-index" 365 | 366 | [[package]] 367 | name = "futures-cpupool" 368 | version = "0.1.8" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | dependencies = [ 371 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 372 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 373 | ] 374 | 375 | [[package]] 376 | name = "h2" 377 | version = "0.1.18" 378 | source = "registry+https://github.com/rust-lang/crates.io-index" 379 | dependencies = [ 380 | "byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 381 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 382 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 383 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 384 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 385 | "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 386 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 387 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 388 | "string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 389 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 390 | ] 391 | 392 | [[package]] 393 | name = "http" 394 | version = "0.1.17" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | dependencies = [ 397 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 398 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 399 | "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 400 | ] 401 | 402 | [[package]] 403 | name = "httparse" 404 | version = "1.3.3" 405 | source = "registry+https://github.com/rust-lang/crates.io-index" 406 | 407 | [[package]] 408 | name = "hyper" 409 | version = "0.12.28" 410 | source = "registry+https://github.com/rust-lang/crates.io-index" 411 | dependencies = [ 412 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 413 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 414 | "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 415 | "h2 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", 416 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 417 | "httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 418 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 419 | "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 420 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 421 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 422 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 423 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 424 | "tokio 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", 425 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 426 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 427 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 428 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 429 | "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 430 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 431 | "want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 432 | ] 433 | 434 | [[package]] 435 | name = "hyper-tls" 436 | version = "0.3.2" 437 | source = "registry+https://github.com/rust-lang/crates.io-index" 438 | dependencies = [ 439 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 440 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 441 | "hyper 0.12.28 (registry+https://github.com/rust-lang/crates.io-index)", 442 | "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 443 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 444 | ] 445 | 446 | [[package]] 447 | name = "idna" 448 | version = "0.1.5" 449 | source = "registry+https://github.com/rust-lang/crates.io-index" 450 | dependencies = [ 451 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 452 | "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", 453 | "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 454 | ] 455 | 456 | [[package]] 457 | name = "indexmap" 458 | version = "1.0.2" 459 | source = "registry+https://github.com/rust-lang/crates.io-index" 460 | 461 | [[package]] 462 | name = "iovec" 463 | version = "0.1.2" 464 | source = "registry+https://github.com/rust-lang/crates.io-index" 465 | dependencies = [ 466 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 467 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 468 | ] 469 | 470 | [[package]] 471 | name = "itoa" 472 | version = "0.4.4" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | 475 | [[package]] 476 | name = "kernel32-sys" 477 | version = "0.2.2" 478 | source = "registry+https://github.com/rust-lang/crates.io-index" 479 | dependencies = [ 480 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 481 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 482 | ] 483 | 484 | [[package]] 485 | name = "lazy_static" 486 | version = "1.3.0" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | 489 | [[package]] 490 | name = "lazycell" 491 | version = "1.2.1" 492 | source = "registry+https://github.com/rust-lang/crates.io-index" 493 | 494 | [[package]] 495 | name = "libc" 496 | version = "0.2.54" 497 | source = "registry+https://github.com/rust-lang/crates.io-index" 498 | 499 | [[package]] 500 | name = "lock_api" 501 | version = "0.1.5" 502 | source = "registry+https://github.com/rust-lang/crates.io-index" 503 | dependencies = [ 504 | "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 505 | "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 506 | ] 507 | 508 | [[package]] 509 | name = "log" 510 | version = "0.4.6" 511 | source = "registry+https://github.com/rust-lang/crates.io-index" 512 | dependencies = [ 513 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 514 | ] 515 | 516 | [[package]] 517 | name = "matches" 518 | version = "0.1.8" 519 | source = "registry+https://github.com/rust-lang/crates.io-index" 520 | 521 | [[package]] 522 | name = "memchr" 523 | version = "2.2.0" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | 526 | [[package]] 527 | name = "memoffset" 528 | version = "0.2.1" 529 | source = "registry+https://github.com/rust-lang/crates.io-index" 530 | 531 | [[package]] 532 | name = "mime" 533 | version = "0.3.13" 534 | source = "registry+https://github.com/rust-lang/crates.io-index" 535 | dependencies = [ 536 | "unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 537 | ] 538 | 539 | [[package]] 540 | name = "mime_guess" 541 | version = "2.0.0-alpha.6" 542 | source = "registry+https://github.com/rust-lang/crates.io-index" 543 | dependencies = [ 544 | "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", 545 | "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 546 | "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 547 | "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 548 | ] 549 | 550 | [[package]] 551 | name = "miniz_oxide" 552 | version = "0.2.1" 553 | source = "registry+https://github.com/rust-lang/crates.io-index" 554 | dependencies = [ 555 | "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 556 | ] 557 | 558 | [[package]] 559 | name = "miniz_oxide_c_api" 560 | version = "0.2.1" 561 | source = "registry+https://github.com/rust-lang/crates.io-index" 562 | dependencies = [ 563 | "cc 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)", 564 | "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)", 565 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 566 | "miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 567 | ] 568 | 569 | [[package]] 570 | name = "mio" 571 | version = "0.6.16" 572 | source = "registry+https://github.com/rust-lang/crates.io-index" 573 | dependencies = [ 574 | "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 575 | "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", 576 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 577 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 578 | "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 579 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 580 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 581 | "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 582 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 583 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 584 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 585 | ] 586 | 587 | [[package]] 588 | name = "miow" 589 | version = "0.2.1" 590 | source = "registry+https://github.com/rust-lang/crates.io-index" 591 | dependencies = [ 592 | "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 593 | "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)", 594 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 595 | "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", 596 | ] 597 | 598 | [[package]] 599 | name = "native-tls" 600 | version = "0.2.3" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | dependencies = [ 603 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 604 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 605 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 606 | "openssl 0.10.22 (registry+https://github.com/rust-lang/crates.io-index)", 607 | "openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 608 | "openssl-sys 0.9.46 (registry+https://github.com/rust-lang/crates.io-index)", 609 | "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", 610 | "security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 611 | "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 612 | "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)", 613 | ] 614 | 615 | [[package]] 616 | name = "net2" 617 | version = "0.2.33" 618 | source = "registry+https://github.com/rust-lang/crates.io-index" 619 | dependencies = [ 620 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 621 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 622 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 623 | ] 624 | 625 | [[package]] 626 | name = "nodrop" 627 | version = "0.1.13" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | 630 | [[package]] 631 | name = "num_cpus" 632 | version = "1.10.0" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | dependencies = [ 635 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 636 | ] 637 | 638 | [[package]] 639 | name = "numtoa" 640 | version = "0.1.0" 641 | source = "registry+https://github.com/rust-lang/crates.io-index" 642 | 643 | [[package]] 644 | name = "openssl" 645 | version = "0.10.22" 646 | source = "registry+https://github.com/rust-lang/crates.io-index" 647 | dependencies = [ 648 | "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)", 649 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 650 | "foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 651 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 652 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 653 | "openssl-sys 0.9.46 (registry+https://github.com/rust-lang/crates.io-index)", 654 | ] 655 | 656 | [[package]] 657 | name = "openssl-probe" 658 | version = "0.1.2" 659 | source = "registry+https://github.com/rust-lang/crates.io-index" 660 | 661 | [[package]] 662 | name = "openssl-sys" 663 | version = "0.9.46" 664 | source = "registry+https://github.com/rust-lang/crates.io-index" 665 | dependencies = [ 666 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 667 | "cc 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)", 668 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 669 | "pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)", 670 | "vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", 671 | ] 672 | 673 | [[package]] 674 | name = "owning_ref" 675 | version = "0.4.0" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | dependencies = [ 678 | "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 679 | ] 680 | 681 | [[package]] 682 | name = "parking_lot" 683 | version = "0.7.1" 684 | source = "registry+https://github.com/rust-lang/crates.io-index" 685 | dependencies = [ 686 | "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 687 | "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 688 | ] 689 | 690 | [[package]] 691 | name = "parking_lot_core" 692 | version = "0.4.0" 693 | source = "registry+https://github.com/rust-lang/crates.io-index" 694 | dependencies = [ 695 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 696 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 697 | "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 698 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 699 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 700 | ] 701 | 702 | [[package]] 703 | name = "percent-encoding" 704 | version = "1.0.1" 705 | source = "registry+https://github.com/rust-lang/crates.io-index" 706 | 707 | [[package]] 708 | name = "phf" 709 | version = "0.7.24" 710 | source = "registry+https://github.com/rust-lang/crates.io-index" 711 | dependencies = [ 712 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 713 | ] 714 | 715 | [[package]] 716 | name = "phf_codegen" 717 | version = "0.7.24" 718 | source = "registry+https://github.com/rust-lang/crates.io-index" 719 | dependencies = [ 720 | "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 721 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 722 | ] 723 | 724 | [[package]] 725 | name = "phf_generator" 726 | version = "0.7.24" 727 | source = "registry+https://github.com/rust-lang/crates.io-index" 728 | dependencies = [ 729 | "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)", 730 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 731 | ] 732 | 733 | [[package]] 734 | name = "phf_shared" 735 | version = "0.7.24" 736 | source = "registry+https://github.com/rust-lang/crates.io-index" 737 | dependencies = [ 738 | "siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 739 | "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 740 | ] 741 | 742 | [[package]] 743 | name = "pkg-config" 744 | version = "0.3.14" 745 | source = "registry+https://github.com/rust-lang/crates.io-index" 746 | 747 | [[package]] 748 | name = "proc-macro2" 749 | version = "0.4.30" 750 | source = "registry+https://github.com/rust-lang/crates.io-index" 751 | dependencies = [ 752 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 753 | ] 754 | 755 | [[package]] 756 | name = "publicsuffix" 757 | version = "1.5.2" 758 | source = "registry+https://github.com/rust-lang/crates.io-index" 759 | dependencies = [ 760 | "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)", 761 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 762 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 763 | "regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 764 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 765 | ] 766 | 767 | [[package]] 768 | name = "quote" 769 | version = "0.6.12" 770 | source = "registry+https://github.com/rust-lang/crates.io-index" 771 | dependencies = [ 772 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 773 | ] 774 | 775 | [[package]] 776 | name = "rand" 777 | version = "0.6.5" 778 | source = "registry+https://github.com/rust-lang/crates.io-index" 779 | dependencies = [ 780 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 781 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 782 | "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 783 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 784 | "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 785 | "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 786 | "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", 787 | "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 788 | "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 789 | "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 790 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 791 | ] 792 | 793 | [[package]] 794 | name = "rand_chacha" 795 | version = "0.1.1" 796 | source = "registry+https://github.com/rust-lang/crates.io-index" 797 | dependencies = [ 798 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 799 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 800 | ] 801 | 802 | [[package]] 803 | name = "rand_core" 804 | version = "0.3.1" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | dependencies = [ 807 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 808 | ] 809 | 810 | [[package]] 811 | name = "rand_core" 812 | version = "0.4.0" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | 815 | [[package]] 816 | name = "rand_hc" 817 | version = "0.1.0" 818 | source = "registry+https://github.com/rust-lang/crates.io-index" 819 | dependencies = [ 820 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 821 | ] 822 | 823 | [[package]] 824 | name = "rand_isaac" 825 | version = "0.1.1" 826 | source = "registry+https://github.com/rust-lang/crates.io-index" 827 | dependencies = [ 828 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 829 | ] 830 | 831 | [[package]] 832 | name = "rand_jitter" 833 | version = "0.1.4" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | dependencies = [ 836 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 837 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 838 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 839 | ] 840 | 841 | [[package]] 842 | name = "rand_os" 843 | version = "0.1.3" 844 | source = "registry+https://github.com/rust-lang/crates.io-index" 845 | dependencies = [ 846 | "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", 847 | "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 848 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 849 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 850 | "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 851 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 852 | ] 853 | 854 | [[package]] 855 | name = "rand_pcg" 856 | version = "0.1.2" 857 | source = "registry+https://github.com/rust-lang/crates.io-index" 858 | dependencies = [ 859 | "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 860 | "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 861 | ] 862 | 863 | [[package]] 864 | name = "rand_xorshift" 865 | version = "0.1.1" 866 | source = "registry+https://github.com/rust-lang/crates.io-index" 867 | dependencies = [ 868 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 869 | ] 870 | 871 | [[package]] 872 | name = "rdrand" 873 | version = "0.4.0" 874 | source = "registry+https://github.com/rust-lang/crates.io-index" 875 | dependencies = [ 876 | "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 877 | ] 878 | 879 | [[package]] 880 | name = "redox_syscall" 881 | version = "0.1.54" 882 | source = "registry+https://github.com/rust-lang/crates.io-index" 883 | 884 | [[package]] 885 | name = "redox_termios" 886 | version = "0.1.1" 887 | source = "registry+https://github.com/rust-lang/crates.io-index" 888 | dependencies = [ 889 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 890 | ] 891 | 892 | [[package]] 893 | name = "redox_users" 894 | version = "0.3.0" 895 | source = "registry+https://github.com/rust-lang/crates.io-index" 896 | dependencies = [ 897 | "argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", 898 | "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 899 | "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 900 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 901 | ] 902 | 903 | [[package]] 904 | name = "regex" 905 | version = "1.1.6" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | dependencies = [ 908 | "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", 909 | "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", 910 | "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", 911 | "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", 912 | "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", 913 | ] 914 | 915 | [[package]] 916 | name = "regex-syntax" 917 | version = "0.6.6" 918 | source = "registry+https://github.com/rust-lang/crates.io-index" 919 | dependencies = [ 920 | "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 921 | ] 922 | 923 | [[package]] 924 | name = "remove_dir_all" 925 | version = "0.5.1" 926 | source = "registry+https://github.com/rust-lang/crates.io-index" 927 | dependencies = [ 928 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 929 | ] 930 | 931 | [[package]] 932 | name = "reqwest" 933 | version = "0.9.16" 934 | source = "registry+https://github.com/rust-lang/crates.io-index" 935 | dependencies = [ 936 | "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", 937 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 938 | "cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)", 939 | "cookie_store 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 940 | "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)", 941 | "flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", 942 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 943 | "http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", 944 | "hyper 0.12.28 (registry+https://github.com/rust-lang/crates.io-index)", 945 | "hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", 946 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 947 | "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", 948 | "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)", 949 | "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", 950 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 951 | "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", 952 | "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", 953 | "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", 954 | "tokio 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)", 955 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 956 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 957 | "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 958 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 959 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 960 | "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", 961 | ] 962 | 963 | [[package]] 964 | name = "rustc-demangle" 965 | version = "0.1.14" 966 | source = "registry+https://github.com/rust-lang/crates.io-index" 967 | 968 | [[package]] 969 | name = "rustc_version" 970 | version = "0.2.3" 971 | source = "registry+https://github.com/rust-lang/crates.io-index" 972 | dependencies = [ 973 | "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", 974 | ] 975 | 976 | [[package]] 977 | name = "ryu" 978 | version = "0.2.8" 979 | source = "registry+https://github.com/rust-lang/crates.io-index" 980 | 981 | [[package]] 982 | name = "schannel" 983 | version = "0.1.15" 984 | source = "registry+https://github.com/rust-lang/crates.io-index" 985 | dependencies = [ 986 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 987 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 988 | ] 989 | 990 | [[package]] 991 | name = "scoped_threadpool" 992 | version = "0.1.9" 993 | source = "registry+https://github.com/rust-lang/crates.io-index" 994 | 995 | [[package]] 996 | name = "scopeguard" 997 | version = "0.3.3" 998 | source = "registry+https://github.com/rust-lang/crates.io-index" 999 | 1000 | [[package]] 1001 | name = "security-framework" 1002 | version = "0.3.1" 1003 | source = "registry+https://github.com/rust-lang/crates.io-index" 1004 | dependencies = [ 1005 | "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", 1006 | "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1007 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 1008 | "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", 1009 | ] 1010 | 1011 | [[package]] 1012 | name = "security-framework-sys" 1013 | version = "0.3.1" 1014 | source = "registry+https://github.com/rust-lang/crates.io-index" 1015 | dependencies = [ 1016 | "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", 1017 | ] 1018 | 1019 | [[package]] 1020 | name = "semver" 1021 | version = "0.9.0" 1022 | source = "registry+https://github.com/rust-lang/crates.io-index" 1023 | dependencies = [ 1024 | "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", 1025 | ] 1026 | 1027 | [[package]] 1028 | name = "semver-parser" 1029 | version = "0.7.0" 1030 | source = "registry+https://github.com/rust-lang/crates.io-index" 1031 | 1032 | [[package]] 1033 | name = "serde" 1034 | version = "1.0.91" 1035 | source = "registry+https://github.com/rust-lang/crates.io-index" 1036 | 1037 | [[package]] 1038 | name = "serde_derive" 1039 | version = "1.0.91" 1040 | source = "registry+https://github.com/rust-lang/crates.io-index" 1041 | dependencies = [ 1042 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1043 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1044 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 1045 | ] 1046 | 1047 | [[package]] 1048 | name = "serde_json" 1049 | version = "1.0.39" 1050 | source = "registry+https://github.com/rust-lang/crates.io-index" 1051 | dependencies = [ 1052 | "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 1053 | "ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1054 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "serde_urlencoded" 1059 | version = "0.5.5" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | dependencies = [ 1062 | "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 1063 | "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", 1064 | "serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)", 1065 | "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", 1066 | ] 1067 | 1068 | [[package]] 1069 | name = "siphasher" 1070 | version = "0.2.3" 1071 | source = "registry+https://github.com/rust-lang/crates.io-index" 1072 | 1073 | [[package]] 1074 | name = "slab" 1075 | version = "0.4.2" 1076 | source = "registry+https://github.com/rust-lang/crates.io-index" 1077 | 1078 | [[package]] 1079 | name = "smallvec" 1080 | version = "0.6.9" 1081 | source = "registry+https://github.com/rust-lang/crates.io-index" 1082 | 1083 | [[package]] 1084 | name = "stable_deref_trait" 1085 | version = "1.1.1" 1086 | source = "registry+https://github.com/rust-lang/crates.io-index" 1087 | 1088 | [[package]] 1089 | name = "string" 1090 | version = "0.1.3" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | 1093 | [[package]] 1094 | name = "strsim" 1095 | version = "0.8.0" 1096 | source = "registry+https://github.com/rust-lang/crates.io-index" 1097 | 1098 | [[package]] 1099 | name = "syn" 1100 | version = "0.15.34" 1101 | source = "registry+https://github.com/rust-lang/crates.io-index" 1102 | dependencies = [ 1103 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1104 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1105 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1106 | ] 1107 | 1108 | [[package]] 1109 | name = "synstructure" 1110 | version = "0.10.1" 1111 | source = "registry+https://github.com/rust-lang/crates.io-index" 1112 | dependencies = [ 1113 | "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", 1114 | "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", 1115 | "syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)", 1116 | "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1117 | ] 1118 | 1119 | [[package]] 1120 | name = "tempfile" 1121 | version = "3.0.7" 1122 | source = "registry+https://github.com/rust-lang/crates.io-index" 1123 | dependencies = [ 1124 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1125 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 1126 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1127 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 1128 | "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", 1129 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1130 | ] 1131 | 1132 | [[package]] 1133 | name = "termion" 1134 | version = "1.5.2" 1135 | source = "registry+https://github.com/rust-lang/crates.io-index" 1136 | dependencies = [ 1137 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 1138 | "numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1139 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 1140 | "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1141 | ] 1142 | 1143 | [[package]] 1144 | name = "textwrap" 1145 | version = "0.11.0" 1146 | source = "registry+https://github.com/rust-lang/crates.io-index" 1147 | dependencies = [ 1148 | "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1149 | ] 1150 | 1151 | [[package]] 1152 | name = "thread_local" 1153 | version = "0.3.6" 1154 | source = "registry+https://github.com/rust-lang/crates.io-index" 1155 | dependencies = [ 1156 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1157 | ] 1158 | 1159 | [[package]] 1160 | name = "time" 1161 | version = "0.1.42" 1162 | source = "registry+https://github.com/rust-lang/crates.io-index" 1163 | dependencies = [ 1164 | "libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)", 1165 | "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)", 1166 | "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", 1167 | ] 1168 | 1169 | [[package]] 1170 | name = "tokio" 1171 | version = "0.1.19" 1172 | source = "registry+https://github.com/rust-lang/crates.io-index" 1173 | dependencies = [ 1174 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1175 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1176 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1177 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1178 | "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", 1179 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1180 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1181 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1182 | "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", 1183 | "tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", 1184 | "tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", 1185 | "tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", 1186 | ] 1187 | 1188 | [[package]] 1189 | name = "tokio-current-thread" 1190 | version = "0.1.6" 1191 | source = "registry+https://github.com/rust-lang/crates.io-index" 1192 | dependencies = [ 1193 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1194 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "tokio-executor" 1199 | version = "0.1.7" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | dependencies = [ 1202 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1203 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1204 | ] 1205 | 1206 | [[package]] 1207 | name = "tokio-io" 1208 | version = "0.1.12" 1209 | source = "registry+https://github.com/rust-lang/crates.io-index" 1210 | dependencies = [ 1211 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1212 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1213 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1214 | ] 1215 | 1216 | [[package]] 1217 | name = "tokio-reactor" 1218 | version = "0.1.9" 1219 | source = "registry+https://github.com/rust-lang/crates.io-index" 1220 | dependencies = [ 1221 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1222 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1223 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1224 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1225 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1226 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1227 | "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1228 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1229 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1230 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1231 | "tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1232 | ] 1233 | 1234 | [[package]] 1235 | name = "tokio-sync" 1236 | version = "0.1.5" 1237 | source = "registry+https://github.com/rust-lang/crates.io-index" 1238 | dependencies = [ 1239 | "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", 1240 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1241 | ] 1242 | 1243 | [[package]] 1244 | name = "tokio-tcp" 1245 | version = "0.1.3" 1246 | source = "registry+https://github.com/rust-lang/crates.io-index" 1247 | dependencies = [ 1248 | "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", 1249 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1250 | "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1251 | "mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)", 1252 | "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", 1253 | "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", 1254 | ] 1255 | 1256 | [[package]] 1257 | name = "tokio-threadpool" 1258 | version = "0.1.14" 1259 | source = "registry+https://github.com/rust-lang/crates.io-index" 1260 | dependencies = [ 1261 | "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", 1262 | "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", 1263 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1264 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1265 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1266 | "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)", 1267 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1268 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1269 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1270 | ] 1271 | 1272 | [[package]] 1273 | name = "tokio-timer" 1274 | version = "0.2.10" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | dependencies = [ 1277 | "crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1278 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1279 | "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", 1280 | "tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1281 | ] 1282 | 1283 | [[package]] 1284 | name = "tokio-trace-core" 1285 | version = "0.1.0" 1286 | source = "registry+https://github.com/rust-lang/crates.io-index" 1287 | dependencies = [ 1288 | "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", 1289 | ] 1290 | 1291 | [[package]] 1292 | name = "try-lock" 1293 | version = "0.2.2" 1294 | source = "registry+https://github.com/rust-lang/crates.io-index" 1295 | 1296 | [[package]] 1297 | name = "try_from" 1298 | version = "0.3.2" 1299 | source = "registry+https://github.com/rust-lang/crates.io-index" 1300 | dependencies = [ 1301 | "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", 1302 | ] 1303 | 1304 | [[package]] 1305 | name = "ucd-util" 1306 | version = "0.1.3" 1307 | source = "registry+https://github.com/rust-lang/crates.io-index" 1308 | 1309 | [[package]] 1310 | name = "unicase" 1311 | version = "1.4.2" 1312 | source = "registry+https://github.com/rust-lang/crates.io-index" 1313 | dependencies = [ 1314 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1315 | ] 1316 | 1317 | [[package]] 1318 | name = "unicase" 1319 | version = "2.4.0" 1320 | source = "registry+https://github.com/rust-lang/crates.io-index" 1321 | dependencies = [ 1322 | "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1323 | ] 1324 | 1325 | [[package]] 1326 | name = "unicode-bidi" 1327 | version = "0.3.4" 1328 | source = "registry+https://github.com/rust-lang/crates.io-index" 1329 | dependencies = [ 1330 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1331 | ] 1332 | 1333 | [[package]] 1334 | name = "unicode-normalization" 1335 | version = "0.1.8" 1336 | source = "registry+https://github.com/rust-lang/crates.io-index" 1337 | dependencies = [ 1338 | "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)", 1339 | ] 1340 | 1341 | [[package]] 1342 | name = "unicode-width" 1343 | version = "0.1.5" 1344 | source = "registry+https://github.com/rust-lang/crates.io-index" 1345 | 1346 | [[package]] 1347 | name = "unicode-xid" 1348 | version = "0.1.0" 1349 | source = "registry+https://github.com/rust-lang/crates.io-index" 1350 | 1351 | [[package]] 1352 | name = "url" 1353 | version = "1.7.2" 1354 | source = "registry+https://github.com/rust-lang/crates.io-index" 1355 | dependencies = [ 1356 | "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", 1357 | "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", 1358 | "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", 1359 | ] 1360 | 1361 | [[package]] 1362 | name = "utf8-ranges" 1363 | version = "1.0.2" 1364 | source = "registry+https://github.com/rust-lang/crates.io-index" 1365 | 1366 | [[package]] 1367 | name = "uuid" 1368 | version = "0.7.4" 1369 | source = "registry+https://github.com/rust-lang/crates.io-index" 1370 | dependencies = [ 1371 | "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", 1372 | ] 1373 | 1374 | [[package]] 1375 | name = "vcpkg" 1376 | version = "0.2.6" 1377 | source = "registry+https://github.com/rust-lang/crates.io-index" 1378 | 1379 | [[package]] 1380 | name = "vec_map" 1381 | version = "0.8.1" 1382 | source = "registry+https://github.com/rust-lang/crates.io-index" 1383 | 1384 | [[package]] 1385 | name = "version_check" 1386 | version = "0.1.5" 1387 | source = "registry+https://github.com/rust-lang/crates.io-index" 1388 | 1389 | [[package]] 1390 | name = "want" 1391 | version = "0.0.6" 1392 | source = "registry+https://github.com/rust-lang/crates.io-index" 1393 | dependencies = [ 1394 | "futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)", 1395 | "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", 1396 | "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", 1397 | ] 1398 | 1399 | [[package]] 1400 | name = "winapi" 1401 | version = "0.2.8" 1402 | source = "registry+https://github.com/rust-lang/crates.io-index" 1403 | 1404 | [[package]] 1405 | name = "winapi" 1406 | version = "0.3.7" 1407 | source = "registry+https://github.com/rust-lang/crates.io-index" 1408 | dependencies = [ 1409 | "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1410 | "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", 1411 | ] 1412 | 1413 | [[package]] 1414 | name = "winapi-build" 1415 | version = "0.1.1" 1416 | source = "registry+https://github.com/rust-lang/crates.io-index" 1417 | 1418 | [[package]] 1419 | name = "winapi-i686-pc-windows-gnu" 1420 | version = "0.4.0" 1421 | source = "registry+https://github.com/rust-lang/crates.io-index" 1422 | 1423 | [[package]] 1424 | name = "winapi-x86_64-pc-windows-gnu" 1425 | version = "0.4.0" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | 1428 | [[package]] 1429 | name = "ws2_32-sys" 1430 | version = "0.2.1" 1431 | source = "registry+https://github.com/rust-lang/crates.io-index" 1432 | dependencies = [ 1433 | "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", 1434 | "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", 1435 | ] 1436 | 1437 | [metadata] 1438 | "checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c" 1439 | "checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c" 1440 | "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" 1441 | "checksum argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f67b0b6a86dae6e67ff4ca2b6201396074996379fba2b92ff649126f37cb392" 1442 | "checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71" 1443 | "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652" 1444 | "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799" 1445 | "checksum backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f106c02a3604afcdc0df5d36cc47b44b55917dbaf3d808f71c163a0ddba64637" 1446 | "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6" 1447 | "checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" 1448 | "checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12" 1449 | "checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400" 1450 | "checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39" 1451 | "checksum byteorder 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a019b10a2a7cdeb292db131fc8113e57ea2a908f6e7894b0c3c671893b65dbeb" 1452 | "checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" 1453 | "checksum cc 1.0.36 (registry+https://github.com/rust-lang/crates.io-index)" = "a0c56216487bb80eec9c4516337b2588a4f2a2290d72a1416d930e4dcdb0c90d" 1454 | "checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4" 1455 | "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" 1456 | "checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" 1457 | "checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e" 1458 | "checksum cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "99be24cfcf40d56ed37fd11c2123be833959bbc5bddecb46e1c2e442e15fa3e0" 1459 | "checksum cookie_store 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b0d2f2ecb21dce00e2453268370312978af9b8024020c7a37ae2cc6dbbe64685" 1460 | "checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" 1461 | "checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" 1462 | "checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb" 1463 | "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1" 1464 | "checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71" 1465 | "checksum crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "04c9e3102cc2d69cd681412141b390abd55a362afc1540965dad0ad4d34280b4" 1466 | "checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" 1467 | "checksum crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" 1468 | "checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" 1469 | "checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e" 1470 | "checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed" 1471 | "checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9" 1472 | "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2" 1473 | "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1" 1474 | "checksum flate2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f87e68aa82b2de08a6e037f1385455759df6e445a8df5e005b4297191dbf18aa" 1475 | "checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 1476 | "checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 1477 | "checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 1478 | "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" 1479 | "checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 1480 | "checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 1481 | "checksum futures 0.1.27 (registry+https://github.com/rust-lang/crates.io-index)" = "a2037ec1c6c1c4f79557762eab1f7eae1f64f6cb418ace90fae88f0942b60139" 1482 | "checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" 1483 | "checksum h2 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "85ab6286db06040ddefb71641b50017c06874614001a134b423783e2db2920bd" 1484 | "checksum http 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "eed324f0f0daf6ec10c474f150505af2c143f251722bf9dbd1261bd1f2ee2c1a" 1485 | "checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83" 1486 | "checksum hyper 0.12.28 (registry+https://github.com/rust-lang/crates.io-index)" = "e8e4606fed1c162e3a63d408c07584429f49a4f34c7176cb6cbee60e78f2372c" 1487 | "checksum hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f" 1488 | "checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 1489 | "checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d" 1490 | "checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08" 1491 | "checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f" 1492 | "checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 1493 | "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14" 1494 | "checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 1495 | "checksum libc 0.2.54 (registry+https://github.com/rust-lang/crates.io-index)" = "c6785aa7dd976f5fbf3b71cfd9cd49d7f783c1ff565a858d71031c6c313aa5c6" 1496 | "checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" 1497 | "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6" 1498 | "checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 1499 | "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39" 1500 | "checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3" 1501 | "checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425" 1502 | "checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed" 1503 | "checksum miniz_oxide 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c468f2369f07d651a5d0bb2c9079f8488a66d5466efe42d0c5c6466edcb7f71e" 1504 | "checksum miniz_oxide_c_api 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b7fe927a42e3807ef71defb191dc87d4e24479b221e67015fe38ae2b7b447bab" 1505 | "checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432" 1506 | "checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" 1507 | "checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e" 1508 | "checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" 1509 | "checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945" 1510 | "checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba" 1511 | "checksum numtoa 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef" 1512 | "checksum openssl 0.10.22 (registry+https://github.com/rust-lang/crates.io-index)" = "a51f452b82d622fc8dd973d7266e9055ac64af25b957d9ced3989142dc61cb6b" 1513 | "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" 1514 | "checksum openssl-sys 0.9.46 (registry+https://github.com/rust-lang/crates.io-index)" = "05636e06b4f8762d4b81d24a351f3966f38bd25ccbcfd235606c91fdb82cc60f" 1515 | "checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" 1516 | "checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" 1517 | "checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" 1518 | "checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 1519 | "checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18" 1520 | "checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e" 1521 | "checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662" 1522 | "checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0" 1523 | "checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c" 1524 | "checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" 1525 | "checksum publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5afecba86dcf1e4fd610246f89899d1924fe12e1e89f555eb7c7f710f3c5ad1d" 1526 | "checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db" 1527 | "checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" 1528 | "checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" 1529 | "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" 1530 | "checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0" 1531 | "checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" 1532 | "checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" 1533 | "checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" 1534 | "checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" 1535 | "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" 1536 | "checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" 1537 | "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" 1538 | "checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252" 1539 | "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" 1540 | "checksum redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe5204c3a17e97dde73f285d49be585df59ed84b50a872baf416e73b62c3828" 1541 | "checksum regex 1.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8f0a0bcab2fd7d1d7c54fa9eae6f43eddeb9ce2e7352f8518a814a4f65d60c58" 1542 | "checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96" 1543 | "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" 1544 | "checksum reqwest 0.9.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ddcfd2c13c6af0f9c45a1086be3b9c68af79e4430b42790759e2d34cce2a6c60" 1545 | "checksum rustc-demangle 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "ccc78bfd5acd7bf3e89cffcf899e5cb1a52d6fafa8dec2739ad70c9577a57288" 1546 | "checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" 1547 | "checksum ryu 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "b96a9549dc8d48f2c283938303c4b5a77aa29bfbc5b54b084fb1630408899a8f" 1548 | "checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339" 1549 | "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" 1550 | "checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" 1551 | "checksum security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2" 1552 | "checksum security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56" 1553 | "checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" 1554 | "checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" 1555 | "checksum serde 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)" = "a72e9b96fa45ce22a4bc23da3858dfccfd60acd28a25bcd328a98fdd6bea43fd" 1556 | "checksum serde_derive 1.0.91 (registry+https://github.com/rust-lang/crates.io-index)" = "101b495b109a3e3ca8c4cbe44cf62391527cdfb6ba15821c5ce80bcd5ea23f9f" 1557 | "checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d" 1558 | "checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a" 1559 | "checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac" 1560 | "checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" 1561 | "checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be" 1562 | "checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" 1563 | "checksum string 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b639411d0b9c738748b5397d5ceba08e648f4f1992231aa859af1a017f31f60b" 1564 | "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" 1565 | "checksum syn 0.15.34 (registry+https://github.com/rust-lang/crates.io-index)" = "a1393e4a97a19c01e900df2aec855a29f71cf02c402e2f443b8d2747c25c5dbe" 1566 | "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015" 1567 | "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a" 1568 | "checksum termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dde0593aeb8d47accea5392b39350015b5eccb12c0d98044d856983d89548dea" 1569 | "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" 1570 | "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" 1571 | "checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" 1572 | "checksum tokio 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)" = "cec6c34409089be085de9403ba2010b80e36938c9ca992c4f67f407bb13db0b1" 1573 | "checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" 1574 | "checksum tokio-executor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "83ea44c6c0773cc034771693711c35c677b4b5a4b21b9e7071704c54de7d555e" 1575 | "checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" 1576 | "checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" 1577 | "checksum tokio-sync 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "5b2f843ffdf8d6e1f90bddd48da43f99ab071660cd92b7ec560ef3cdfd7a409a" 1578 | "checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" 1579 | "checksum tokio-threadpool 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72558af20be886ea124595ea0f806dd5703b8958e4705429dd58b3d8231f72f2" 1580 | "checksum tokio-timer 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2910970404ba6fa78c5539126a9ae2045d62e3713041e447f695f41405a120c6" 1581 | "checksum tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3" 1582 | "checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" 1583 | "checksum try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b" 1584 | "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86" 1585 | "checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" 1586 | "checksum unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a84e5511b2a947f3ae965dcb29b13b7b1691b6e7332cf5dbc1744138d5acb7f6" 1587 | "checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" 1588 | "checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426" 1589 | "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" 1590 | "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 1591 | "checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 1592 | "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737" 1593 | "checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" 1594 | "checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d" 1595 | "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" 1596 | "checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 1597 | "checksum want 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "797464475f30ddb8830cc529aaaae648d581f99e2036a928877dfde027ddf6b3" 1598 | "checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1599 | "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770" 1600 | "checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1601 | "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1602 | "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1603 | "checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 1604 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "bliss" 3 | readme = "README.md" 4 | repository = "https://github.com/ajmwagar/bliss" 5 | description = "Ignorance is bliss! Ignore your .gitignore" 6 | license = "MIT" 7 | version = "0.1.2" 8 | authors = ["Avery Wagar "] 9 | edition = "2018" 10 | 11 | [dependencies] 12 | reqwest = "0.9.16" 13 | # rayon = "*" 14 | dirs = "1.0" 15 | clap = "2.33.0" 16 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Avery Wagar 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![Bliss](./logo/logo.png) 2 | 3 | [![Crates.io](https://img.shields.io/crates/v/bliss.svg)](https://crates.io/crates/bliss) 4 | [![Docs.rs](https://docs.rs/bliss/badge.svg)](https://docs.rs/bliss) 5 | [![Build Status](https://travis-ci.org/ajmwagar/bliss.svg?branch=master)](https://travis-ci.org/ajmwagar/bliss) 6 | [![dependency status](https://deps.rs/repo/github/ajmwagar/bliss/status.svg)](https://deps.rs/repo/github/ajmwagar/bliss) 7 | 8 | 9 | > **Ignorance is bliss!** Ignore your `.gitignore`. 10 | 11 | *Bliss* is a "batteries included" `.gitignore` management tool. 12 | 13 | ## Features 14 | 15 | - Pulls `.gitignore` templates from [gitignore.io](https://gitignore.io). 16 | - Built-in caching allows for **offline use** and **blazing fast** speeds. (After inital download of `.gitignore` templates) 17 | - Simple, stateless CLI 18 | - Zero system-dependencies (standalone binary) 19 | 20 | 21 | ## ⚒ Usage 22 | 23 | ```bash 24 | 25 | bliss list # Print out supported languages 26 | 27 | bliss rust # print out a rust .gitignore 28 | 29 | bliss rust,python # print out a rust and python .gitignore 30 | 31 | bliss rust >> .gitignore # Append rust's .gitignore to ./.gitignore 32 | 33 | bliss help # Show help menu 34 | 35 | bliss cache clear # Clear the cache and exit 36 | 37 | bliss cache update # Update currently downloaded templates and support list 38 | ``` 39 | 40 | 41 | ## 📦 Installation 42 | 43 | ```bash 44 | cargo install bliss 45 | ``` 46 | ## 🚥 Roadmap 47 | 48 | - [x] `.gitignore` Caching 49 | - [x] Better cache management 50 | - [x] Better error handling/messages 51 | - [ ] More commands for handling common issues and mistakes with `.gitignore` files. 52 | - [ ] MOAR SPEED!!!! 53 | - [ ] The heat-death of the universe... 54 | -------------------------------------------------------------------------------- /logo/blossom.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/bliss/57f7136cfcdc2d564d23d05461f81419bf24c6d3/logo/blossom.jpg -------------------------------------------------------------------------------- /logo/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/bliss/57f7136cfcdc2d564d23d05461f81419bf24c6d3/logo/logo.png -------------------------------------------------------------------------------- /logo/logo.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ajmwagar/bliss/57f7136cfcdc2d564d23d05461f81419bf24c6d3/logo/logo.xcf -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | use std::error::Error; 2 | use std::collections::HashMap; 3 | 4 | // Cache managment 5 | use std::fs::{File, create_dir_all}; 6 | use std::io::prelude::*; 7 | 8 | /// Filename for list of supported languages 9 | const CACHE_LANGS_FILE: &str = "bliss_langs"; 10 | 11 | 12 | /// Commands to cleanup git repositories 13 | pub struct Ignorance { 14 | } 15 | 16 | impl Ignorance { 17 | /// Create a new instance of Ignorance 18 | pub fn new() -> Result> { 19 | Ok(Ignorance {}) 20 | } 21 | 22 | /// Remove all files with "git rm --cached " from gitignore 23 | pub fn remove_gitignore(&self) -> Result<(), Box> { 24 | unimplemented!(); 25 | } 26 | 27 | /// Duplicate the current .gitignore accross all branches (that do not have a .gitignore) and 28 | /// commit 29 | pub fn duplicate_gi_branch() -> Result<(), Box> { 30 | unimplemented!(); 31 | } 32 | } 33 | 34 | 35 | 36 | /// Bliss, gitignore client 37 | pub struct Bliss { 38 | /// Cache of gitignore info 39 | pub cache: Cache, 40 | } 41 | 42 | impl Bliss { 43 | /// Create a new bliss client 44 | pub fn new() -> Self { 45 | 46 | // Either get the cache from FS or create a new one and populate it from gitignore.io 47 | let cache = match Cache::from() { 48 | Ok(cache) => cache, 49 | Err(_e) => { 50 | // eprintln!("Error loading cache ($HOME/.cache/bliss): {}", e); 51 | // Create new cache 52 | match Cache::new() { 53 | Ok(cache) => cache, 54 | Err(_e) => { 55 | eprintln!("Error connecting to https://gitignore.io, please check your network settings and try again."); 56 | std::process::exit(1); 57 | } 58 | } 59 | } 60 | }; 61 | 62 | Bliss { 63 | cache 64 | } 65 | 66 | 67 | } 68 | 69 | /// Get list of supported languages from cache or fallback to web 70 | pub fn supported_langs(&self) -> Result, Box> { 71 | let sl = self.cache.supported_langs.clone().unwrap(); 72 | 73 | 74 | if sl.len() == 0 { 75 | return Ok(Bliss::get_lang_list()?); 76 | } 77 | else { 78 | return Ok(sl); 79 | } 80 | 81 | } 82 | 83 | 84 | 85 | /// Get list of supported languages from web 86 | pub fn get_lang_list() -> Result, Box> { 87 | let url = format!("https://www.gitignore.io/api/list"); 88 | 89 | // TODO: Error handling 90 | let contents = reqwest::get(&url)?.text()?; 91 | 92 | let contents = contents.replace("\"", ""); 93 | let contents = contents.replace("\n", ","); 94 | 95 | Ok(contents.split(",").map(|string| string.to_string()).collect::>()) 96 | 97 | } 98 | 99 | /// Check whether a given language is supported 100 | pub fn is_supported(&self, lang: &str) -> bool { 101 | // TODO Use good result 102 | let langs = self.supported_langs().unwrap(); 103 | 104 | langs.contains(&lang.to_string()) 105 | } 106 | 107 | /// Get the respective `.gitignore` for a given language 108 | pub fn get_lang_gitignore(&mut self, lang: &str) -> Option { 109 | if self.cache.gitignores.contains_key(lang) { 110 | return Some(self.cache.gitignores.get(lang).unwrap().clone().to_owned()) 111 | } 112 | else { 113 | 114 | 115 | let url = format!("https://www.gitignore.io/api/{}", lang); 116 | 117 | // TODO: Error handling 118 | let contents = reqwest::get(&url).unwrap().text().unwrap(); 119 | 120 | if contents.contains("undefined") { 121 | return None; 122 | } 123 | 124 | let gi = Gitignore { ignored_paths: contents.split("\n").map(|x| x.to_string()).collect() }; 125 | 126 | self.cache.gitignores.insert(lang.to_string(), gi.clone()); 127 | 128 | Some(gi) 129 | } 130 | } 131 | } 132 | 133 | /// A gitignore 134 | #[derive(Clone, Debug)] 135 | pub struct Gitignore { 136 | /// Paths to ignore 137 | ignored_paths: Vec, 138 | } 139 | 140 | impl std::fmt::Display for Gitignore { 141 | fn fmt(&self, formatter: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error>{ 142 | writeln!(formatter, "{}", self.ignored_paths.join("\n"))?; 143 | 144 | Ok(()) 145 | } 146 | } 147 | 148 | impl Gitignore { 149 | /// Create a gitignore from a string 150 | pub fn from_string(string: &str) -> Self { 151 | Gitignore { 152 | ignored_paths: string.split("\n").map(|x| x.to_string()).collect() 153 | } 154 | } 155 | } 156 | 157 | /// Cache of gitignore and language information 158 | pub struct Cache { 159 | /// Supported languages 160 | supported_langs: Option>, 161 | /// List of gitignores stored in cache 162 | pub gitignores: HashMap 163 | 164 | } 165 | 166 | impl Cache { 167 | /// Create a new cache 168 | pub fn new() -> Result> { 169 | Ok(Cache { 170 | supported_langs: Some(Bliss::get_lang_list()?), 171 | gitignores: HashMap::new() 172 | }) 173 | } 174 | 175 | /// Save cache to fs 176 | pub fn save(&self) -> Result<(), Box> { 177 | // Get cache 178 | let cache = dirs::cache_dir().unwrap(); 179 | 180 | // Setup filesystem 181 | let mut path = String::new(); 182 | 183 | path.push_str(&cache.to_string_lossy()); 184 | path.push_str(&"/bliss/"); 185 | 186 | create_dir_all(format!("{}{}", path, "ignores"))?; 187 | 188 | // Write supported languages to file 189 | let mut lang_list = File::create(format!("{}{}", path, CACHE_LANGS_FILE))?; 190 | 191 | lang_list.write_all(self.supported_langs.clone().unwrap().join("\n").as_bytes())?; 192 | 193 | 194 | 195 | // Save gitignore templates 196 | // TODO use rayon 197 | self.gitignores.iter().for_each(|(lang, ignore)| { 198 | //TODO Correct error handling 199 | let mut file = File::create(format!("{}ignores/{}.gitignore", path, lang)).unwrap(); 200 | 201 | file.write_all(ignore.ignored_paths.join("\n").as_bytes()).unwrap(); 202 | }); 203 | 204 | Ok(()) 205 | 206 | } 207 | 208 | /// Read Cache from fs 209 | pub fn from() -> Result> { 210 | // Get cache 211 | let cache = dirs::cache_dir().unwrap(); 212 | 213 | // Setup filesystem 214 | let mut path = String::new(); 215 | 216 | path.push_str(&cache.to_string_lossy()); 217 | path.push_str(&"/bliss/"); 218 | 219 | 220 | // Read supported languages 221 | let mut supported_langs = String::new(); 222 | 223 | File::open(format!("{}{}", path, CACHE_LANGS_FILE))?.read_to_string(&mut supported_langs)?; 224 | 225 | 226 | // Read gitignore templates 227 | let mut gi = HashMap::new(); 228 | 229 | 230 | for entry in std::fs::read_dir(format!("{}/bliss/ignores", cache.to_string_lossy()))? { 231 | let entry = entry?; 232 | let path = entry.path(); 233 | 234 | if !path.is_dir() { 235 | 236 | let mut contents = String::new(); 237 | 238 | let mut file = File::open(path.clone())?; 239 | 240 | file.read_to_string(&mut contents)?; 241 | 242 | // Get filename and filetype 243 | let filename = path.to_str().unwrap().split("/").collect::>(); 244 | 245 | let filename = filename[filename.len() - 1]; 246 | 247 | let ft = filename.split(".").collect::>()[0].to_string(); 248 | 249 | gi.insert(ft, Gitignore::from_string(&contents)); 250 | 251 | } 252 | } 253 | 254 | Ok(Cache { 255 | supported_langs: Some(supported_langs.split("\n") 256 | .map(|x| x.to_string()) 257 | .collect()), 258 | gitignores: gi, 259 | }) 260 | } 261 | } 262 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use clap::{Arg, App, SubCommand}; 2 | 3 | use std::error::Error; 4 | use bliss::*; 5 | 6 | fn main() -> Result<(), Box> { 7 | let matches = App::new("bliss") 8 | .version("1.0") 9 | .author("Avery Wagar ") 10 | .about("Ignorance is bliss! Ignore your .gitignore") 11 | .arg(Arg::with_name("LANGUAGE") 12 | .help("Set the languages to download .gitignores for (i.e. \"rust,python\")") 13 | .required(false) 14 | .index(1)) 15 | .subcommand(SubCommand::with_name("list") 16 | .about("List supported languages")) 17 | .subcommand(SubCommand::with_name("cache") 18 | .about("Manage bliss cache") 19 | .subcommand(SubCommand::with_name("clear").about("Clear bliss cache")) 20 | .subcommand(SubCommand::with_name("update").about("Update bliss cache"))) 21 | .get_matches(); 22 | 23 | 24 | let mut bliss = Bliss::new(); 25 | 26 | if let Some(_) = matches.subcommand_matches("list") { 27 | let langs = bliss.supported_langs()?; 28 | 29 | println!("Supported Languages:\n========================\n{}", langs.join(", ")); 30 | } 31 | // Cache modification 32 | else if let Some(matches) = matches.subcommand_matches("cache") { 33 | // Clear cache 34 | if let Some(_matches) = matches.subcommand_matches("clear") { 35 | // TODO Clear cache 36 | println!("Clearing cache..."); 37 | 38 | std::fs::remove_dir_all(format!("{}/bliss", dirs::cache_dir().unwrap().to_string_lossy()))?; 39 | 40 | // Exit early 41 | std::process::exit(0); 42 | } 43 | // Update cache 44 | else if let Some(_matches) = matches.subcommand_matches("update") { 45 | println!("Updating cache..."); 46 | 47 | // Update supported languages 48 | bliss.supported_langs()?; 49 | 50 | // Update .gitignore templates 51 | for lang in bliss.cache.gitignores.clone().keys() { 52 | println!("Updating {} template...", lang); 53 | bliss.cache.gitignores.remove(lang); 54 | bliss.get_lang_gitignore(lang); 55 | } 56 | } 57 | } 58 | else { 59 | for lang in matches.value_of("LANGUAGE").unwrap_or("").split(" ").collect::>().join("").split(",") { 60 | if lang == "" { 61 | println!("Try: bliss help"); 62 | break; 63 | } 64 | if bliss.is_supported(lang){ 65 | let ignore = bliss.get_lang_gitignore(lang); 66 | print!("{}", ignore.unwrap()); 67 | } 68 | // else { 69 | // // TODO Don't print other languages if one fails 70 | // eprintln!("{} is not a supported language", lang); 71 | // break; 72 | // } 73 | } 74 | } 75 | 76 | 77 | // let is_supported = bliss.is_supported("rust"); 78 | 79 | // println!("{}", is_supported); 80 | 81 | // Save cache before exiting 82 | bliss.cache.save()?; 83 | 84 | Ok(()) 85 | } 86 | 87 | -------------------------------------------------------------------------------- /tests/unit.rs: -------------------------------------------------------------------------------- 1 | use bliss::*; 2 | 3 | fn setup() -> Bliss { 4 | Bliss::new() 5 | } 6 | 7 | #[test] 8 | /// Download supported_languages from the web 9 | fn web_supported_languages() { 10 | let bliss = setup(); 11 | 12 | let result = bliss.supported_langs(); 13 | 14 | } 15 | 16 | #[test] 17 | /// Test pulling get_lang_gitignore with the rust language 18 | fn web_gitignore_rust() { 19 | let mut bliss = setup(); 20 | 21 | let result = bliss.get_lang_gitignore("rust"); 22 | 23 | let sucess = match result { 24 | None => false, 25 | Some(_) => true 26 | }; 27 | 28 | assert!(sucess); 29 | } 30 | --------------------------------------------------------------------------------