Housekeeping (#394)

- Upgrade to rust 2018
- Update dependencies
- Use BTree{Map,Set} instead of Map and Set
This commit is contained in:
Casey Rodarmor 2019-04-11 15:23:14 -07:00 committed by GitHub
parent fa2012d574
commit 3a287b864a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
44 changed files with 436 additions and 437 deletions

386
Cargo.lock generated
View File

@ -2,10 +2,10 @@
# It is not intended for manual editing. # It is not intended for manual editing.
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "0.6.4" version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -13,48 +13,54 @@ name = "ansi_term"
version = "0.11.0" version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "assert_matches" name = "assert_matches"
version = "1.2.0" version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "atty" name = "atty"
version = "0.2.10" version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)",
"termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]]
name = "autocfg"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "backtrace" name = "backtrace"
version = "0.3.8" version = "0.3.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"backtrace-sys 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)", "autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
"cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
"rustc-demangle 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "backtrace-sys" name = "backtrace-sys"
version = "0.1.23" version = "0.1.28"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cc 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.0.3" version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -68,24 +74,24 @@ dependencies = [
[[package]] [[package]]
name = "cc" name = "cc"
version = "1.0.17" version = "1.0.35"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "cfg-if" name = "cfg-if"
version = "0.1.3" version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "clap" name = "clap"
version = "2.31.2" version = "2.33.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
"textwrap 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
@ -96,7 +102,7 @@ version = "3.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -104,31 +110,31 @@ name = "dotenv"
version = "0.13.0" version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "edit-distance" name = "edit-distance"
version = "2.0.1" version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "either" name = "either"
version = "1.5.0" version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "env_logger" name = "env_logger"
version = "0.5.12" version = "0.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"termcolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -138,36 +144,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "failure" name = "failure"
version = "0.1.1" version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"backtrace 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", "backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
"failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "failure_derive" name = "failure_derive"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
"quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)",
"synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "fuchsia-cprng"
version = "0.1.1" version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
"synstructure 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "fuchsia-zircon"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
"fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "fuchsia-zircon-sys"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "glob" name = "glob"
@ -176,7 +174,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "humantime" name = "humantime"
version = "1.1.1" version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)", "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
@ -184,10 +182,10 @@ dependencies = [
[[package]] [[package]]
name = "itertools" name = "itertools"
version = "0.7.8" version = "0.7.11"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -195,20 +193,20 @@ name = "just"
version = "0.3.13" version = "0.3.13"
dependencies = [ dependencies = [
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"assert_matches 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", "atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
"brev 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", "brev 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
"clap 2.31.2 (registry+https://github.com/rust-lang/crates.io-index)", "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
"ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"dotenv 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", "dotenv 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
"edit-distance 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "edit-distance 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
"env_logger 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
"executable-path 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "executable-path 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)", "itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
"target 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "target 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)", "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -216,42 +214,47 @@ dependencies = [
[[package]] [[package]]
name = "lazy_static" name = "lazy_static"
version = "1.0.1" version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "libc" name = "libc"
version = "0.2.42" version = "0.2.51"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "log" name = "log"
version = "0.4.4" version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "memchr" name = "memchr"
version = "2.0.1" version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "nix" name = "nix"
version = "0.11.0" version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
"cc 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)", "cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)",
"cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)",
"void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]]
name = "proc-macro2"
version = "0.4.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "quick-error" name = "quick-error"
version = "1.2.2" version = "1.2.2"
@ -259,22 +262,48 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "quote" name = "quote"
version = "0.3.15" version = "0.6.12"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "rand" name = "rand"
version = "0.4.2" version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "rand_core"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "rand_core"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "rdrand"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.1.40" version = "0.1.54"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -282,27 +311,27 @@ name = "redox_termios"
version = "0.1.1" version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "regex" name = "regex"
version = "1.0.0" version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)", "aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
"memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
"regex-syntax 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", "regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
"thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
"utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "regex-syntax" name = "regex-syntax"
version = "0.6.1" version = "0.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -310,44 +339,38 @@ name = "remove_dir_all"
version = "0.5.1" version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "rustc-demangle" name = "rustc-demangle"
version = "0.1.8" version = "0.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "strsim" name = "strsim"
version = "0.7.0" version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "syn" name = "syn"
version = "0.11.11" version = "0.15.30"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
"synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "synom"
version = "0.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "synstructure" name = "synstructure"
version = "0.6.1" version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)", "proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)", "quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
"syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)",
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -360,16 +383,16 @@ name = "tempdir"
version = "0.3.7" version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
"remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", "remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "termcolor" name = "termcolor"
version = "1.0.1" version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"wincolor 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
@ -377,14 +400,14 @@ name = "termion"
version = "1.5.1" version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)", "libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)",
"redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", "redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)",
"redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "textwrap" name = "textwrap"
version = "0.9.0" version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
@ -392,16 +415,15 @@ dependencies = [
[[package]] [[package]]
name = "thread_local" name = "thread_local"
version = "0.3.5" version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]] [[package]]
name = "ucd-util" name = "ucd-util"
version = "0.1.1" version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -411,20 +433,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "unicode-xid" name = "unicode-xid"
version = "0.0.4" version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "unreachable"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "utf8-ranges" name = "utf8-ranges"
version = "1.0.0" version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
@ -439,7 +453,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "winapi" name = "winapi"
version = "0.3.5" version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -451,6 +465,14 @@ name = "winapi-i686-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "winapi-util"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]] [[package]]
name = "winapi-x86_64-pc-windows-gnu" name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0" version = "0.4.0"
@ -458,69 +480,73 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]] [[package]]
name = "wincolor" name = "wincolor"
version = "1.0.0" version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [ dependencies = [
"winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[metadata] [metadata]
"checksum aho-corasick 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d6531d44de723825aa81398a6415283229725a00fa30713812ab9323faa82fc4" "checksum aho-corasick 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c"
"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
"checksum assert_matches 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "664470abf00fae0f31c0eb6e1ca12d82961b2a2541ef898bc9dd51a9254d218b" "checksum assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7deb0a829ca7bcfaf5da70b073a8d128619259a7be8216a355e23f00763059e5"
"checksum atty 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "2fc4a1aa4c24c0718a250f0681885c1af91419d242f29eb8f2ab28502d80dbd1" "checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
"checksum backtrace 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbdd17cd962b570302f5297aea8648d5923e22e555c2ed2d8b2e34eca646bf6d" "checksum autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a6d640bee2da49f60a4068a7fae53acde8982514ab7bae8b8cea9e88cbcfd799"
"checksum backtrace-sys 0.1.23 (registry+https://github.com/rust-lang/crates.io-index)" = "bff67d0c06556c0b8e6b5f090f0eac52d950d9dfd1d35ba04e4ca3543eaf6a7e" "checksum backtrace 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f106c02a3604afcdc0df5d36cc47b44b55917dbaf3d808f71c163a0ddba64637"
"checksum bitflags 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c54bb8f454c567f21197eefcdbf5679d0bd99f2ddbe52e84c77061952e6789" "checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6"
"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
"checksum brev 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "423c06240bda0044486c500264dd450b24eb25d1223103a6b8b817ed7fc0be7a" "checksum brev 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "423c06240bda0044486c500264dd450b24eb25d1223103a6b8b817ed7fc0be7a"
"checksum cc 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "49ec142f5768efb5b7622aebc3fdbdbb8950a4b9ba996393cb76ef7466e8747d" "checksum cc 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "5e5f3fee5eeb60324c2781f1e41286bdee933850fff9b3c672587fed5ec58c83"
"checksum cfg-if 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "405216fd8fe65f718daa7102ea808a946b6ce40c742998fbfd3463645552de18" "checksum cfg-if 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "11d43355396e872eefb45ce6342e4374ed7bc2b3a502d1b28e36d6e23c05d1f4"
"checksum clap 2.31.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0f16b89cbb9ee36d87483dc939fe9f1e13c05898d56d7b230a0d4dff033a536" "checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
"checksum ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "630391922b1b893692c6334369ff528dcc3a9d8061ccf4c803aa8f83cb13db5e" "checksum ctrlc 3.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "630391922b1b893692c6334369ff528dcc3a9d8061ccf4c803aa8f83cb13db5e"
"checksum dotenv 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d0a1279c96732bc6800ce6337b6a614697b0e74ae058dc03c62ebeb78b4d86" "checksum dotenv 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d0a1279c96732bc6800ce6337b6a614697b0e74ae058dc03c62ebeb78b4d86"
"checksum edit-distance 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3bd26878c3d921f89797a4e1a1711919f999a9f6946bb6f5a4ffda126d297b7e" "checksum edit-distance 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bbbaaaf38131deb9ca518a274a45bfdb8771f139517b073b16c2d3d32ae5037b"
"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0" "checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
"checksum env_logger 0.5.12 (registry+https://github.com/rust-lang/crates.io-index)" = "f4d7e69c283751083d53d01eac767407343b8b69c4bd70058e08adc2637cb257" "checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
"checksum executable-path 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ebc5a6d89e3c90b84e8f33c8737933dda8f1c106b5415900b38b9d433841478" "checksum executable-path 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ebc5a6d89e3c90b84e8f33c8737933dda8f1c106b5415900b38b9d433841478"
"checksum failure 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "934799b6c1de475a012a02dab0ace1ace43789ee4b99bcfbf1a2e3e8ced5de82" "checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
"checksum failure_derive 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7cdda555bb90c9bb67a3b670a0f42de8e73f5981524123ad8578aafec8ddb8b" "checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" "checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e" "checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
"checksum itertools 0.7.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f58856976b776fedd95533137617a02fb25719f40e7d9b01c7043cd65474f450" "checksum itertools 0.7.11 (registry+https://github.com/rust-lang/crates.io-index)" = "0d47946d458e94a1b7bcabbf6521ea7c037062c81f534615abcad76e84d4970d"
"checksum lazy_static 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e6412c5e2ad9584b0b8e979393122026cdd6d2a80b933f890dcd694ddbe73739" "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
"checksum libc 0.2.42 (registry+https://github.com/rust-lang/crates.io-index)" = "b685088df2b950fccadf07a7187c8ef846a959c142338a48f9dc0b94517eb5f1" "checksum libc 0.2.51 (registry+https://github.com/rust-lang/crates.io-index)" = "bedcc7a809076656486ffe045abeeac163da1b558e963a31e29fbfbeba916917"
"checksum log 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cba860f648db8e6f269df990180c2217f333472b4a6e901e97446858487971e2" "checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
"checksum memchr 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "796fba70e76612589ed2ce7f45282f5af869e0fdd7cc6199fa1aa1f1d591ba9d" "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
"checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17" "checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17"
"checksum proc-macro2 0.4.27 (registry+https://github.com/rust-lang/crates.io-index)" = "4d317f9caece796be1980837fd5cb3dfec5613ebdb04ad0956deea83ce168915"
"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0" "checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" "checksum quote 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "faf4799c5d274f3868a4aae320a0a182cbd2baee377b378f080e16a23e9d80db"
"checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" "checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
"checksum redox_syscall 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "c214e91d3ecf43e9a4e41e578973adeb14b474f2bee858742d127af75a0112b1" "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
"checksum redox_syscall 0.1.54 (registry+https://github.com/rust-lang/crates.io-index)" = "12229c14a0f65c4f1cb046a3b52047cdd9da1f4b30f8a39c5063c8bae515e252"
"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76" "checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
"checksum regex 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75ecf88252dce580404a22444fc7d626c01815debba56a7f4f536772a5ff19d3" "checksum regex 1.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "559008764a17de49a3146b234641644ed37d118d1ef641a0bb573d146edc6ce0"
"checksum regex-syntax 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05b06a75f5217880fc5e905952a42750bf44787e56a6c6d6852ed0992f5e1d54" "checksum regex-syntax 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96"
"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5" "checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
"checksum rustc-demangle 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "76d7ba1feafada44f2d38eed812bd2489a03c0f5abb975799251518b68848649" "checksum rustc-demangle 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "adacaae16d02b6ec37fdc7acfcddf365978de76d1983d3ee22afc260e1ca9619"
"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550" "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" "checksum syn 0.15.30 (registry+https://github.com/rust-lang/crates.io-index)" = "66c8865bf5a7cbb662d8b011950060b3c8743dca141b054bf7195b20d314d8e2"
"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" "checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
"checksum synstructure 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3a761d12e6d8dcb4dcf952a7a89b475e3a9d69e4a69307e01a470977642914bd"
"checksum target 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "10000465bb0cc031c87a44668991b284fd84c0e6bd945f62d4af04e9e52a222a" "checksum target 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "10000465bb0cc031c87a44668991b284fd84c0e6bd945f62d4af04e9e52a222a"
"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8" "checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
"checksum termcolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "722426c4a0539da2c4ffd9b419d90ad540b4cff4a053be9069c908d4d07e2836" "checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f"
"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096" "checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
"checksum textwrap 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0b59b6b4b44d867f1370ef1bd91bfb262bf07bf0ae65c202ea2fbc16153b693" "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
"checksum thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963" "checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
"checksum ucd-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d" "checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526" "checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" "checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
"checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122"
"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" "checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
"checksum winapi 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "773ef9dcc5f24b7d850d0ff101e542ff24c3b090a9768e03ff889fdef41f00fd" "checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
"checksum wincolor 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b9dc3aa9dcda98b5a16150c54619c1ead22e3d3a5d458778ae914be760aa981a" "checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"

View File

@ -6,6 +6,7 @@ authors = ["Casey Rodarmor <casey@rodarmor.com>"]
license = "CC0-1.0" license = "CC0-1.0"
homepage = "https://github.com/casey/just" homepage = "https://github.com/casey/just"
readme = "crates-io-readme.md" readme = "crates-io-readme.md"
edition = "2018"
[dependencies] [dependencies]
ansi_term = "0.11" ansi_term = "0.11"

View File

@ -1,3 +1,3 @@
cognitive-complexity-threshold = 1337 cyclomatic-complexity-threshold = 1337
doc-valid-idents = ["FreeBSD"] doc-valid-idents = ["FreeBSD"]

6
fuzz/Cargo.lock generated
View File

@ -1,3 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]] [[package]]
name = "aho-corasick" name = "aho-corasick"
version = "0.6.8" version = "0.6.8"
@ -191,7 +193,7 @@ dependencies = [
[[package]] [[package]]
name = "just" name = "just"
version = "0.3.12" version = "0.3.13"
dependencies = [ dependencies = [
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
"assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "assert_matches 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
@ -216,7 +218,7 @@ dependencies = [
name = "just-fuzz" name = "just-fuzz"
version = "0.0.0" version = "0.0.0"
dependencies = [ dependencies = [
"just 0.3.12", "just 0.3.13",
"libfuzzer-sys 0.1.0 (git+https://github.com/rust-fuzz/libfuzzer-sys.git)", "libfuzzer-sys 0.1.0 (git+https://github.com/rust-fuzz/libfuzzer-sys.git)",
] ]

View File

@ -3,6 +3,7 @@ name = "just-fuzz"
version = "0.0.0" version = "0.0.0"
authors = ["Automatically generated"] authors = ["Automatically generated"]
publish = false publish = false
edition = "2018"
[package.metadata] [package.metadata]
cargo-fuzz = true cargo-fuzz = true

View File

@ -1,8 +1,6 @@
#![no_main] #![no_main]
#[macro_use] use libfuzzer_sys::fuzz_target;
extern crate libfuzzer_sys;
extern crate just;
fuzz_target!(|data: &[u8]| { fuzz_target!(|data: &[u8]| {
std::str::from_utf8(data).map(just::fuzzing::compile).ok(); std::str::from_utf8(data).map(just::fuzzing::compile).ok();

View File

@ -6,7 +6,7 @@ bt='0'
export RUST_BACKTRACE=bt export RUST_BACKTRACE=bt
test: build test:
cargo test cargo test
fuzz: fuzz:
@ -20,7 +20,7 @@ fuzz:
} | less } | less
# only run tests matching PATTERN # only run tests matching PATTERN
filter PATTERN: build filter PATTERN:
cargo test {{PATTERN}} cargo test {{PATTERN}}
# test with backtrace # test with backtrace
@ -70,7 +70,7 @@ install-dev-deps:
# everyone's favorite animate paper clip # everyone's favorite animate paper clip
clippy: clippy:
cargo +nightly clippy cargo clippy
# count non-empty lines of code # count non-empty lines of code
sloc: sloc:

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
pub struct Alias<'a> { pub struct Alias<'a> {
pub name: &'a str, pub name: &'a str,
@ -7,7 +7,7 @@ pub struct Alias<'a> {
} }
impl<'a> Display for Alias<'a> { impl<'a> Display for Alias<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { fn fmt(&self, f: &mut Formatter) -> fmt::Result {
write!(f, "alias {} = {}", self.name, self.target) write!(f, "alias {} = {}", self.name, self.target)
} }
} }

View File

@ -1,20 +1,20 @@
use common::*; use crate::common::*;
use CompilationErrorKind::*; use CompilationErrorKind::*;
pub struct AliasResolver<'a, 'b> pub struct AliasResolver<'a, 'b>
where where
'a: 'b, 'a: 'b,
{ {
aliases: &'b Map<&'a str, Alias<'a>>, aliases: &'b BTreeMap<&'a str, Alias<'a>>,
recipes: &'b Map<&'a str, Recipe<'a>>, recipes: &'b BTreeMap<&'a str, Recipe<'a>>,
alias_tokens: &'b Map<&'a str, Token<'a>>, alias_tokens: &'b BTreeMap<&'a str, Token<'a>>,
} }
impl<'a: 'b, 'b> AliasResolver<'a, 'b> { impl<'a: 'b, 'b> AliasResolver<'a, 'b> {
pub fn resolve_aliases( pub fn resolve_aliases(
aliases: &Map<&'a str, Alias<'a>>, aliases: &BTreeMap<&'a str, Alias<'a>>,
recipes: &Map<&'a str, Recipe<'a>>, recipes: &BTreeMap<&'a str, Recipe<'a>>,
alias_tokens: &Map<&'a str, Token<'a>>, alias_tokens: &BTreeMap<&'a str, Token<'a>>,
) -> CompilationResult<'a, ()> { ) -> CompilationResult<'a, ()> {
let resolver = AliasResolver { let resolver = AliasResolver {
aliases, aliases,

View File

@ -1,30 +1,30 @@
use common::*; use crate::common::*;
use brev; use brev;
pub struct AssignmentEvaluator<'a: 'b, 'b> { pub struct AssignmentEvaluator<'a: 'b, 'b> {
pub assignments: &'b Map<&'a str, Expression<'a>>, pub assignments: &'b BTreeMap<&'a str, Expression<'a>>,
pub invocation_directory: &'b Result<PathBuf, String>, pub invocation_directory: &'b Result<PathBuf, String>,
pub dotenv: &'b Map<String, String>, pub dotenv: &'b BTreeMap<String, String>,
pub dry_run: bool, pub dry_run: bool,
pub evaluated: Map<&'a str, String>, pub evaluated: BTreeMap<&'a str, String>,
pub exports: &'b Set<&'a str>, pub exports: &'b BTreeSet<&'a str>,
pub overrides: &'b Map<&'b str, &'b str>, pub overrides: &'b BTreeMap<&'b str, &'b str>,
pub quiet: bool, pub quiet: bool,
pub scope: &'b Map<&'a str, String>, pub scope: &'b BTreeMap<&'a str, String>,
pub shell: &'b str, pub shell: &'b str,
} }
impl<'a, 'b> AssignmentEvaluator<'a, 'b> { impl<'a, 'b> AssignmentEvaluator<'a, 'b> {
pub fn evaluate_assignments( pub fn evaluate_assignments(
assignments: &Map<&'a str, Expression<'a>>, assignments: &BTreeMap<&'a str, Expression<'a>>,
invocation_directory: &Result<PathBuf, String>, invocation_directory: &Result<PathBuf, String>,
dotenv: &'b Map<String, String>, dotenv: &'b BTreeMap<String, String>,
overrides: &Map<&str, &str>, overrides: &BTreeMap<&str, &str>,
quiet: bool, quiet: bool,
shell: &'a str, shell: &'a str,
dry_run: bool, dry_run: bool,
) -> RunResult<'a, Map<&'a str, String>> { ) -> RunResult<'a, BTreeMap<&'a str, String>> {
let mut evaluator = AssignmentEvaluator { let mut evaluator = AssignmentEvaluator {
evaluated: empty(), evaluated: empty(),
exports: &empty(), exports: &empty(),
@ -48,7 +48,7 @@ impl<'a, 'b> AssignmentEvaluator<'a, 'b> {
pub fn evaluate_line( pub fn evaluate_line(
&mut self, &mut self,
line: &[Fragment<'a>], line: &[Fragment<'a>],
arguments: &Map<&str, Cow<str>>, arguments: &BTreeMap<&str, Cow<str>>,
) -> RunResult<'a, String> { ) -> RunResult<'a, String> {
let mut evaluated = String::new(); let mut evaluated = String::new();
for fragment in line { for fragment in line {
@ -86,7 +86,7 @@ impl<'a, 'b> AssignmentEvaluator<'a, 'b> {
fn evaluate_expression( fn evaluate_expression(
&mut self, &mut self,
expression: &Expression<'a>, expression: &Expression<'a>,
arguments: &Map<&str, Cow<str>>, arguments: &BTreeMap<&str, Cow<str>>,
) -> RunResult<'a, String> { ) -> RunResult<'a, String> {
match *expression { match *expression {
Expression::Variable { name, .. } => { Expression::Variable { name, .. } => {
@ -136,7 +136,7 @@ impl<'a, 'b> AssignmentEvaluator<'a, 'b> {
fn run_backtick( fn run_backtick(
&self, &self,
dotenv: &Map<String, String>, dotenv: &BTreeMap<String, String>,
raw: &str, raw: &str,
token: &Token<'a>, token: &Token<'a>,
) -> RunResult<'a, String> { ) -> RunResult<'a, String> {
@ -164,9 +164,8 @@ impl<'a, 'b> AssignmentEvaluator<'a, 'b> {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
use crate::testing::parse_success;
use brev::OutputError; use brev::OutputError;
use testing::parse_success;
use Configuration;
fn no_cwd_err() -> Result<PathBuf, String> { fn no_cwd_err() -> Result<PathBuf, String> {
Err(String::from("no cwd in tests")) Err(String::from("no cwd in tests"))

View File

@ -1,19 +1,19 @@
use common::*; use crate::common::*;
use CompilationErrorKind::*; use CompilationErrorKind::*;
pub struct AssignmentResolver<'a: 'b, 'b> { pub struct AssignmentResolver<'a: 'b, 'b> {
assignments: &'b Map<&'a str, Expression<'a>>, assignments: &'b BTreeMap<&'a str, Expression<'a>>,
assignment_tokens: &'b Map<&'a str, Token<'a>>, assignment_tokens: &'b BTreeMap<&'a str, Token<'a>>,
stack: Vec<&'a str>, stack: Vec<&'a str>,
seen: Set<&'a str>, seen: BTreeSet<&'a str>,
evaluated: Set<&'a str>, evaluated: BTreeSet<&'a str>,
} }
impl<'a: 'b, 'b> AssignmentResolver<'a, 'b> { impl<'a: 'b, 'b> AssignmentResolver<'a, 'b> {
pub fn resolve_assignments( pub fn resolve_assignments(
assignments: &Map<&'a str, Expression<'a>>, assignments: &BTreeMap<&'a str, Expression<'a>>,
assignment_tokens: &Map<&'a str, Token<'a>>, assignment_tokens: &BTreeMap<&'a str, Token<'a>>,
) -> CompilationResult<'a, ()> { ) -> CompilationResult<'a, ()> {
let mut resolver = AssignmentResolver { let mut resolver = AssignmentResolver {
stack: empty(), stack: empty(),

View File

@ -1,12 +1,9 @@
extern crate ansi_term; use crate::common::*;
extern crate atty;
use common::*; use ansi_term::Color::*;
use ansi_term::{ANSIGenericString, Prefix, Style, Suffix};
use self::ansi_term::Color::*; use atty::is as is_atty;
use self::ansi_term::{ANSIGenericString, Prefix, Style, Suffix}; use atty::Stream;
use self::atty::is as is_atty;
use self::atty::Stream;
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub enum UseColor { pub enum UseColor {
@ -52,7 +49,7 @@ impl Color {
} }
} }
pub fn fmt(fmt: &fmt::Formatter) -> Color { pub fn fmt(fmt: &Formatter) -> Color {
if fmt.alternate() { if fmt.alternate() {
Color::always() Color::always()
} else { } else {

View File

@ -1,20 +1,20 @@
use common::*; use crate::common::*;
pub trait CommandExt { pub trait CommandExt {
fn export_environment_variables<'a>( fn export_environment_variables<'a>(
&mut self, &mut self,
scope: &Map<&'a str, String>, scope: &BTreeMap<&'a str, String>,
dotenv: &Map<String, String>, dotenv: &BTreeMap<String, String>,
exports: &Set<&'a str>, exports: &BTreeSet<&'a str>,
) -> RunResult<'a, ()>; ) -> RunResult<'a, ()>;
} }
impl CommandExt for Command { impl CommandExt for Command {
fn export_environment_variables<'a>( fn export_environment_variables<'a>(
&mut self, &mut self,
scope: &Map<&'a str, String>, scope: &BTreeMap<&'a str, String>,
dotenv: &Map<String, String>, dotenv: &BTreeMap<String, String>,
exports: &Set<&'a str>, exports: &BTreeSet<&'a str>,
) -> RunResult<'a, ()> { ) -> RunResult<'a, ()> {
for (name, value) in dotenv { for (name, value) in dotenv {
self.env(name, value); self.env(name, value);

View File

@ -1,40 +1,57 @@
pub use std::borrow::Cow; pub(crate) use std::{
pub use std::collections::{BTreeMap as Map, BTreeSet as Set}; borrow::Cow,
pub use std::fmt::Display; cmp,
pub use std::io::prelude::*; collections::{BTreeMap, BTreeSet},
pub use std::ops::{Range, RangeInclusive}; env,
pub use std::path::{Path, PathBuf}; fmt::{self, Display, Formatter},
pub use std::process::Command; fs, io, iter,
pub use std::sync::{Mutex, MutexGuard}; ops::{Range, RangeInclusive},
pub use std::{cmp, env, fmt, fs, io, iter, process, usize, vec}; path::{Path, PathBuf},
process,
process::Command,
sync::{Mutex, MutexGuard},
usize, vec,
};
pub use color::Color; pub(crate) use edit_distance::edit_distance;
pub use libc::{EXIT_FAILURE, EXIT_SUCCESS}; pub(crate) use libc::{EXIT_FAILURE, EXIT_SUCCESS};
pub use regex::Regex; pub(crate) use log::warn;
pub use tempdir::TempDir; pub(crate) use regex::Regex;
pub(crate) use tempdir::TempDir;
pub(crate) use unicode_width::UnicodeWidthChar;
pub use alias::Alias; pub(crate) use crate::{
pub use alias_resolver::AliasResolver; alias::Alias,
pub use assignment_evaluator::AssignmentEvaluator; alias_resolver::AliasResolver,
pub use assignment_resolver::AssignmentResolver; assignment_evaluator::AssignmentEvaluator,
pub use command_ext::CommandExt; assignment_resolver::AssignmentResolver,
pub use compilation_error::{CompilationError, CompilationErrorKind, CompilationResult}; color::Color,
pub use configuration::Configuration; compilation_error::{CompilationError, CompilationErrorKind, CompilationResult},
pub use cooked_string::CookedString; configuration::Configuration,
pub use expression::Expression; cooked_string::CookedString,
pub use fragment::Fragment; expression::Expression,
pub use function::{evaluate_function, resolve_function, FunctionContext}; fragment::Fragment,
pub use interrupt_handler::InterruptHandler; function::{evaluate_function, resolve_function, FunctionContext},
pub use justfile::Justfile; interrupt_handler::InterruptHandler,
pub use lexer::Lexer; justfile::Justfile,
pub use load_dotenv::load_dotenv; lexer::Lexer,
pub use misc::{default, empty}; load_dotenv::load_dotenv,
pub use parameter::Parameter; misc::{default, empty},
pub use parser::Parser; parameter::Parameter,
pub use range_ext::RangeExt; parser::Parser,
pub use recipe::{Recipe, RecipeContext}; recipe::{Recipe, RecipeContext},
pub use recipe_resolver::RecipeResolver; recipe_resolver::RecipeResolver,
pub use runtime_error::{RunResult, RuntimeError}; runtime_error::{RunResult, RuntimeError},
pub use shebang::Shebang; shebang::Shebang,
pub use token::{Token, TokenKind}; token::{Token, TokenKind},
pub use verbosity::Verbosity; verbosity::Verbosity,
};
#[allow(unused_imports)]
pub(crate) use std::io::prelude::*;
#[allow(unused_imports)]
pub(crate) use crate::command_ext::CommandExt;
#[allow(unused_imports)]
pub(crate) use crate::range_ext::RangeExt;

View File

@ -1,6 +1,6 @@
use common::*; use crate::common::*;
use misc::{maybe_s, show_whitespace, write_error_context, Or}; use crate::misc::{maybe_s, show_whitespace, write_error_context, Or};
pub type CompilationResult<'a, T> = Result<T, CompilationError<'a>>; pub type CompilationResult<'a, T> = Result<T, CompilationError<'a>>;
@ -103,7 +103,7 @@ pub enum CompilationErrorKind<'a> {
} }
impl<'a> Display for CompilationError<'a> { impl<'a> Display for CompilationError<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
use CompilationErrorKind::*; use CompilationErrorKind::*;
let error = Color::fmt(f).error(); let error = Color::fmt(f).error();
let message = Color::fmt(f).message(); let message = Color::fmt(f).message();

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
pub const DEFAULT_SHELL: &str = "sh"; pub const DEFAULT_SHELL: &str = "sh";
@ -6,7 +6,7 @@ pub struct Configuration<'a> {
pub dry_run: bool, pub dry_run: bool,
pub evaluate: bool, pub evaluate: bool,
pub highlight: bool, pub highlight: bool,
pub overrides: Map<&'a str, &'a str>, pub overrides: BTreeMap<&'a str, &'a str>,
pub quiet: bool, pub quiet: bool,
pub shell: &'a str, pub shell: &'a str,
pub color: Color, pub color: Color,

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
#[derive(PartialEq, Debug)] #[derive(PartialEq, Debug)]
pub struct CookedString<'a> { pub struct CookedString<'a> {

View File

@ -1,7 +1,6 @@
macro_rules! die { macro_rules! die {
($($arg:tt)*) => {{ ($($arg:tt)*) => {{
extern crate std;
eprintln!($($arg)*); eprintln!($($arg)*);
process::exit(EXIT_FAILURE) std::process::exit(EXIT_FAILURE)
}}; }};
} }

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
#[derive(PartialEq, Debug)] #[derive(PartialEq, Debug)]
pub enum Expression<'a> { pub enum Expression<'a> {
@ -35,7 +35,7 @@ impl<'a> Expression<'a> {
} }
impl<'a> Display for Expression<'a> { impl<'a> Display for Expression<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
match *self { match *self {
Expression::Backtick { raw, .. } => write!(f, "`{}`", raw)?, Expression::Backtick { raw, .. } => write!(f, "`{}`", raw)?,
Expression::Concatination { ref lhs, ref rhs } => write!(f, "{} + {}", lhs, rhs)?, Expression::Concatination { ref lhs, ref rhs } => write!(f, "{} + {}", lhs, rhs)?,

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
#[derive(PartialEq, Debug)] #[derive(PartialEq, Debug)]
pub enum Fragment<'a> { pub enum Fragment<'a> {

View File

@ -1,11 +1,11 @@
use common::*; use crate::common::*;
use target; use target;
use platform::{Platform, PlatformInterface}; use crate::platform::{Platform, PlatformInterface};
lazy_static! { lazy_static! {
static ref FUNCTIONS: Map<&'static str, Function> = vec![ static ref FUNCTIONS: BTreeMap<&'static str, Function> = vec![
("arch", Function::Nullary(arch)), ("arch", Function::Nullary(arch)),
("os", Function::Nullary(os)), ("os", Function::Nullary(os)),
("os_family", Function::Nullary(os_family)), ("os_family", Function::Nullary(os_family)),
@ -39,7 +39,7 @@ impl Function {
pub struct FunctionContext<'a> { pub struct FunctionContext<'a> {
pub invocation_directory: &'a Result<PathBuf, String>, pub invocation_directory: &'a Result<PathBuf, String>,
pub dotenv: &'a Map<String, String>, pub dotenv: &'a BTreeMap<String, String>,
} }
pub fn resolve_function<'a>(token: &Token<'a>, argc: usize) -> CompilationResult<'a, ()> { pub fn resolve_function<'a>(token: &Token<'a>, argc: usize) -> CompilationResult<'a, ()> {

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
pub fn compile(text: &str) { pub fn compile(text: &str) {
if let Err(error) = Parser::parse(text) { if let Err(error) = Parser::parse(text) {

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
use ctrlc; use ctrlc;

View File

@ -1,12 +1,10 @@
use common::*; use crate::common::*;
use edit_distance::edit_distance;
pub struct Justfile<'a> { pub struct Justfile<'a> {
pub recipes: Map<&'a str, Recipe<'a>>, pub recipes: BTreeMap<&'a str, Recipe<'a>>,
pub assignments: Map<&'a str, Expression<'a>>, pub assignments: BTreeMap<&'a str, Expression<'a>>,
pub exports: Set<&'a str>, pub exports: BTreeSet<&'a str>,
pub aliases: Map<&'a str, Alias<'a>>, pub aliases: BTreeMap<&'a str, Alias<'a>>,
} }
impl<'a> Justfile<'a> where { impl<'a> Justfile<'a> where {
@ -155,8 +153,8 @@ impl<'a> Justfile<'a> where {
context: &'b RecipeContext<'a>, context: &'b RecipeContext<'a>,
recipe: &Recipe<'a>, recipe: &Recipe<'a>,
arguments: &[&'a str], arguments: &[&'a str],
dotenv: &Map<String, String>, dotenv: &BTreeMap<String, String>,
ran: &mut Set<&'a str>, ran: &mut BTreeSet<&'a str>,
) -> RunResult<()> { ) -> RunResult<()> {
for dependency_name in &recipe.dependencies { for dependency_name in &recipe.dependencies {
if !ran.contains(dependency_name) { if !ran.contains(dependency_name) {
@ -170,7 +168,7 @@ impl<'a> Justfile<'a> where {
} }
impl<'a> Display for Justfile<'a> { impl<'a> Display for Justfile<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
let mut items = self.recipes.len() + self.assignments.len() + self.aliases.len(); let mut items = self.recipes.len() + self.assignments.len() + self.aliases.len();
for (name, expression) in &self.assignments { for (name, expression) in &self.assignments {
if self.exports.contains(name) { if self.exports.contains(name) {
@ -183,7 +181,7 @@ impl<'a> Display for Justfile<'a> {
} }
} }
for alias in self.aliases.values() { for alias in self.aliases.values() {
write!(f, "{}",alias)?; write!(f, "{}", alias)?;
items -= 1; items -= 1;
if items != 0 { if items != 0 {
write!(f, "\n\n")?; write!(f, "\n\n")?;
@ -203,8 +201,9 @@ impl<'a> Display for Justfile<'a> {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
use testing::parse_success;
use RuntimeError::*; use crate::runtime_error::RuntimeError::*;
use crate::testing::parse_success;
fn no_cwd_err() -> Result<PathBuf, String> { fn no_cwd_err() -> Result<PathBuf, String> {
Err(String::from("no cwd in tests")) Err(String::from("no cwd in tests"))

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
use CompilationErrorKind::*; use CompilationErrorKind::*;
use TokenKind::*; use TokenKind::*;
@ -383,7 +383,7 @@ mod test {
fn $name() { fn $name() {
let input = $input; let input = $input;
let expected = $expected; let expected = $expected;
let tokens = ::Lexer::lex(input).unwrap(); let tokens = crate::lexer::Lexer::lex(input).unwrap();
let roundtrip = tokens let roundtrip = tokens
.iter() .iter()
.map(|t| { .map(|t| {
@ -688,7 +688,7 @@ c: b
error_test! { error_test! {
name: unterminated_interpolation, name: unterminated_interpolation,
input: "foo:\n echo {{ input: "foo:\n echo {{
", ",
index: 13, index: 13,
line: 1, line: 1,
column: 8, column: 8,

View File

@ -1,21 +1,5 @@
#[macro_use] #[macro_use]
extern crate lazy_static; extern crate lazy_static;
#[macro_use]
extern crate log;
extern crate ansi_term;
extern crate brev;
extern crate clap;
extern crate ctrlc;
extern crate dotenv;
extern crate edit_distance;
extern crate env_logger;
extern crate itertools;
extern crate libc;
extern crate regex;
extern crate target;
extern crate tempdir;
extern crate unicode_width;
#[cfg(test)] #[cfg(test)]
#[macro_use] #[macro_use]
@ -57,6 +41,4 @@ mod shebang;
mod token; mod token;
mod verbosity; mod verbosity;
use common::*; pub use crate::run::run;
pub use run::run;

View File

@ -1,16 +1,14 @@
use common::*; use crate::common::*;
use dotenv; pub fn load_dotenv() -> RunResult<'static, BTreeMap<String, String>> {
pub fn load_dotenv() -> RunResult<'static, Map<String, String>> {
match dotenv::dotenv_iter() { match dotenv::dotenv_iter() {
Ok(iter) => { Ok(iter) => {
let result: dotenv::Result<Map<String, String>> = iter.collect(); let result: dotenv::Result<BTreeMap<String, String>> = iter.collect();
result.map_err(|dotenv_error| RuntimeError::Dotenv { dotenv_error }) result.map_err(|dotenv_error| RuntimeError::Dotenv { dotenv_error })
} }
Err(dotenv_error) => { Err(dotenv_error) => {
if dotenv_error.not_found() { if dotenv_error.not_found() {
Ok(Map::new()) Ok(BTreeMap::new())
} else { } else {
Err(RuntimeError::Dotenv { dotenv_error }) Err(RuntimeError::Dotenv { dotenv_error })
} }

View File

@ -1,5 +1,3 @@
extern crate just;
fn main() { fn main() {
just::run(); just::run();
} }

View File

@ -1,6 +1,4 @@
use common::*; use crate::common::*;
use unicode_width::UnicodeWidthChar;
pub fn show_whitespace(text: &str) -> String { pub fn show_whitespace(text: &str) -> String {
text text
@ -34,7 +32,7 @@ pub fn maybe_s(n: usize) -> &'static str {
} }
pub fn conjoin<T: Display>( pub fn conjoin<T: Display>(
f: &mut fmt::Formatter, f: &mut Formatter,
values: &[T], values: &[T],
conjunction: &str, conjunction: &str,
) -> Result<(), fmt::Error> { ) -> Result<(), fmt::Error> {
@ -58,7 +56,7 @@ pub fn conjoin<T: Display>(
} }
pub fn write_error_context( pub fn write_error_context(
f: &mut fmt::Formatter, f: &mut Formatter,
text: &str, text: &str,
index: usize, index: usize,
line: usize, line: usize,
@ -135,7 +133,7 @@ pub fn write_error_context(
pub struct And<'a, T: 'a + Display>(pub &'a [T]); pub struct And<'a, T: 'a + Display>(pub &'a [T]);
impl<'a, T: Display> Display for And<'a, T> { impl<'a, T: Display> Display for And<'a, T> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
conjoin(f, self.0, "and") conjoin(f, self.0, "and")
} }
} }
@ -143,7 +141,7 @@ impl<'a, T: Display> Display for And<'a, T> {
pub struct Or<'a, T: 'a + Display>(pub &'a [T]); pub struct Or<'a, T: 'a + Display>(pub &'a [T]);
impl<'a, T: Display> Display for Or<'a, T> { impl<'a, T: Display> Display for Or<'a, T> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
conjoin(f, self.0, "or") conjoin(f, self.0, "or")
} }
} }
@ -151,7 +149,7 @@ impl<'a, T: Display> Display for Or<'a, T> {
pub struct Tick<'a, T: 'a + Display>(pub &'a T); pub struct Tick<'a, T: 'a + Display>(pub &'a T);
impl<'a, T: Display> Display for Tick<'a, T> { impl<'a, T: Display> Display for Tick<'a, T> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
write!(f, "`{}`", self.0) write!(f, "`{}`", self.0)
} }
} }

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
#[derive(PartialEq, Debug)] #[derive(PartialEq, Debug)]
pub struct Parameter<'a> { pub struct Parameter<'a> {
@ -9,7 +9,7 @@ pub struct Parameter<'a> {
} }
impl<'a> Display for Parameter<'a> { impl<'a> Display for Parameter<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
let color = Color::fmt(f); let color = Color::fmt(f);
if self.variadic { if self.variadic {
write!(f, "{}", color.annotation().paint("+"))?; write!(f, "{}", color.annotation().paint("+"))?;

View File

@ -1,18 +1,17 @@
use common::*; use crate::common::*;
use itertools;
use CompilationErrorKind::*; use CompilationErrorKind::*;
use TokenKind::*; use TokenKind::*;
pub struct Parser<'a> { pub struct Parser<'a> {
text: &'a str, text: &'a str,
tokens: itertools::PutBackN<vec::IntoIter<Token<'a>>>, tokens: itertools::PutBackN<vec::IntoIter<Token<'a>>>,
recipes: Map<&'a str, Recipe<'a>>, recipes: BTreeMap<&'a str, Recipe<'a>>,
assignments: Map<&'a str, Expression<'a>>, assignments: BTreeMap<&'a str, Expression<'a>>,
assignment_tokens: Map<&'a str, Token<'a>>, assignment_tokens: BTreeMap<&'a str, Token<'a>>,
exports: Set<&'a str>, exports: BTreeSet<&'a str>,
aliases: Map<&'a str, Alias<'a>>, aliases: BTreeMap<&'a str, Alias<'a>>,
alias_tokens: Map<&'a str, Token<'a>>, alias_tokens: BTreeMap<&'a str, Token<'a>>,
} }
impl<'a> Parser<'a> { impl<'a> Parser<'a> {
@ -500,8 +499,8 @@ impl<'a> Parser<'a> {
#[cfg(test)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
use crate::testing::parse_success;
use brev; use brev;
use testing::parse_success;
macro_rules! summary_test { macro_rules! summary_test {
($name:ident, $input:expr, $expected:expr $(,)*) => { ($name:ident, $input:expr, $expected:expr $(,)*) => {
@ -587,14 +586,14 @@ export a = "hello"
summary_test! { summary_test! {
parse_alias_after_target, parse_alias_after_target,
r#" r#"
foo: foo:
echo a echo a
alias f = foo alias f = foo
"#, "#,
r#"alias f = foo r#"alias f = foo
foo: foo:
echo a"# echo a"#
} }
summary_test! { summary_test! {
@ -614,7 +613,7 @@ foo:
parse_alias_with_comment, parse_alias_with_comment,
r#" r#"
alias f = foo #comment alias f = foo #comment
foo: foo:
echo a echo a
"#, "#,
r#"alias f = foo r#"alias f = foo
@ -714,7 +713,7 @@ c = a + b + a + b",
summary_test! { summary_test! {
parse_interpolation_backticks, parse_interpolation_backticks,
r#"a: r#"a:
echo {{ `echo hello` + "blarg" }} {{ `echo bob` }}"#, echo {{ `echo hello` + "blarg" }} {{ `echo bob` }}"#,
r#"a: r#"a:
echo {{`echo hello` + "blarg"}} {{`echo bob`}}"#, echo {{`echo hello` + "blarg"}} {{`echo bob`}}"#,
} }

View File

@ -1,6 +1,4 @@
use common::*; use crate::common::*;
use brev;
pub struct Platform; pub struct Platform;

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
pub trait RangeExt<T> { pub trait RangeExt<T> {
fn range_contains(&self, i: &T) -> bool; fn range_contains(&self, i: &T) -> bool;
@ -6,7 +6,7 @@ pub trait RangeExt<T> {
impl<T> RangeExt<T> for Range<T> impl<T> RangeExt<T> for Range<T>
where where
T: PartialOrd + Copy, T: PartialOrd,
{ {
fn range_contains(&self, i: &T) -> bool { fn range_contains(&self, i: &T) -> bool {
i >= &self.start && i < &self.end i >= &self.start && i < &self.end
@ -15,7 +15,7 @@ where
impl<T> RangeExt<T> for RangeInclusive<T> impl<T> RangeExt<T> for RangeInclusive<T>
where where
T: PartialOrd + Copy, T: PartialOrd,
{ {
fn range_contains(&self, i: &T) -> bool { fn range_contains(&self, i: &T) -> bool {
i >= self.start() && i <= self.end() i >= self.start() && i <= self.end()
@ -27,20 +27,30 @@ mod test {
use super::*; use super::*;
#[test] #[test]
fn range() { fn exclusive() {
assert!((0..1).range_contains(&0)); assert!(!(0..0).range_contains(&0));
assert!((10..20).range_contains(&15));
assert!(!(0..0).range_contains(&0)); assert!(!(0..0).range_contains(&0));
assert!(!(1..10).range_contains(&0)); assert!(!(1..10).range_contains(&0));
assert!(!(1..10).range_contains(&10)); assert!(!(1..10).range_contains(&10));
assert!(!(1..10).range_contains(&0));
assert!(!(1..10).range_contains(&10));
assert!((0..1).range_contains(&0));
assert!((0..1).range_contains(&0));
assert!((10..20).range_contains(&15));
assert!((10..20).range_contains(&15));
} }
#[test] #[test]
fn range_inclusive() { fn inclusive() {
assert!((0..=10).range_contains(&0));
assert!((0..=10).range_contains(&7));
assert!((0..=10).range_contains(&10));
assert!(!(0..=10).range_contains(&11)); assert!(!(0..=10).range_contains(&11));
assert!(!(1..=10).range_contains(&0));
assert!(!(5..=10).range_contains(&4)); assert!(!(5..=10).range_contains(&4));
assert!((0..=0).range_contains(&0));
assert!((0..=1).range_contains(&0));
assert!((0..=10).range_contains(&0));
assert!((0..=10).range_contains(&10));
assert!((0..=10).range_contains(&7));
assert!((1..=10).range_contains(&10));
assert!((10..=20).range_contains(&15));
} }
} }

View File

@ -1,8 +1,8 @@
use common::*; use crate::common::*;
use std::process::{Command, ExitStatus, Stdio}; use std::process::{Command, ExitStatus, Stdio};
use platform::{Platform, PlatformInterface}; use crate::platform::{Platform, PlatformInterface};
/// Return a `RuntimeError::Signal` if the process was terminated by a signal, /// Return a `RuntimeError::Signal` if the process was terminated by a signal,
/// otherwise return an `RuntimeError::UnknownFailure` /// otherwise return an `RuntimeError::UnknownFailure`
@ -41,7 +41,7 @@ pub struct Recipe<'a> {
pub struct RecipeContext<'a> { pub struct RecipeContext<'a> {
pub invocation_directory: &'a Result<PathBuf, String>, pub invocation_directory: &'a Result<PathBuf, String>,
pub configuration: &'a Configuration<'a>, pub configuration: &'a Configuration<'a>,
pub scope: Map<&'a str, String>, pub scope: BTreeMap<&'a str, String>,
} }
impl<'a> Recipe<'a> { impl<'a> Recipe<'a> {
@ -69,8 +69,8 @@ impl<'a> Recipe<'a> {
&self, &self,
context: &RecipeContext<'a>, context: &RecipeContext<'a>,
arguments: &[&'a str], arguments: &[&'a str],
dotenv: &Map<String, String>, dotenv: &BTreeMap<String, String>,
exports: &Set<&'a str>, exports: &BTreeSet<&'a str>,
) -> RunResult<'a, ()> { ) -> RunResult<'a, ()> {
let configuration = &context.configuration; let configuration = &context.configuration;
@ -84,7 +84,7 @@ impl<'a> Recipe<'a> {
); );
} }
let mut argument_map = Map::new(); let mut argument_map = BTreeMap::new();
let mut rest = arguments; let mut rest = arguments;
for parameter in &self.parameters { for parameter in &self.parameters {
@ -315,7 +315,7 @@ impl<'a> Recipe<'a> {
} }
impl<'a> Display for Recipe<'a> { impl<'a> Display for Recipe<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
if let Some(doc) = self.doc { if let Some(doc) = self.doc {
writeln!(f, "# {}", doc)?; writeln!(f, "# {}", doc)?;
} }

View File

@ -1,18 +1,18 @@
use common::*; use crate::common::*;
use CompilationErrorKind::*; use CompilationErrorKind::*;
pub struct RecipeResolver<'a: 'b, 'b> { pub struct RecipeResolver<'a: 'b, 'b> {
stack: Vec<&'a str>, stack: Vec<&'a str>,
seen: Set<&'a str>, seen: BTreeSet<&'a str>,
resolved: Set<&'a str>, resolved: BTreeSet<&'a str>,
recipes: &'b Map<&'a str, Recipe<'a>>, recipes: &'b BTreeMap<&'a str, Recipe<'a>>,
} }
impl<'a, 'b> RecipeResolver<'a, 'b> { impl<'a, 'b> RecipeResolver<'a, 'b> {
pub fn resolve_recipes( pub fn resolve_recipes(
recipes: &Map<&'a str, Recipe<'a>>, recipes: &BTreeMap<&'a str, Recipe<'a>>,
assignments: &Map<&'a str, Expression<'a>>, assignments: &BTreeMap<&'a str, Expression<'a>>,
text: &'a str, text: &'a str,
) -> CompilationResult<'a, ()> { ) -> CompilationResult<'a, ()> {
let mut resolver = RecipeResolver { let mut resolver = RecipeResolver {

View File

@ -1,10 +1,9 @@
use common::*; use crate::common::*;
use crate::configuration::DEFAULT_SHELL;
use crate::interrupt_handler::InterruptHandler;
use crate::misc::maybe_s;
use clap::{App, AppSettings, Arg, ArgGroup}; use clap::{App, AppSettings, Arg, ArgGroup};
use configuration::DEFAULT_SHELL;
use env_logger;
use interrupt_handler::InterruptHandler;
use misc::maybe_s;
use std::{convert, ffi}; use std::{convert, ffi};
use unicode_width::UnicodeWidthStr; use unicode_width::UnicodeWidthStr;
@ -187,7 +186,7 @@ pub fn run() {
}; };
let set_count = matches.occurrences_of("SET"); let set_count = matches.occurrences_of("SET");
let mut overrides = Map::new(); let mut overrides = BTreeMap::new();
if set_count > 0 { if set_count > 0 {
let mut values = matches.values_of("SET").unwrap(); let mut values = matches.values_of("SET").unwrap();
for _ in 0..set_count { for _ in 0..set_count {
@ -197,9 +196,9 @@ pub fn run() {
let override_re = Regex::new("^([^=]+)=(.*)$").unwrap(); let override_re = Regex::new("^([^=]+)=(.*)$").unwrap();
let raw_arguments = matches let raw_arguments: Vec<_> = matches
.values_of("ARGUMENTS") .values_of("ARGUMENTS")
.map(|values| values.collect::<Vec<_>>()) .map(Iterator::collect)
.unwrap_or_default(); .unwrap_or_default();
for argument in raw_arguments for argument in raw_arguments
@ -357,7 +356,7 @@ pub fn run() {
if matches.is_present("LIST") { if matches.is_present("LIST") {
// Construct a target to alias map. // Construct a target to alias map.
let mut recipe_aliases: Map<&str, Vec<&str>> = Map::new(); let mut recipe_aliases: BTreeMap<&str, Vec<&str>> = BTreeMap::new();
for alias in justfile.aliases.values() { for alias in justfile.aliases.values() {
if !recipe_aliases.contains_key(alias.target) { if !recipe_aliases.contains_key(alias.target) {
recipe_aliases.insert(alias.target, vec![alias.name]); recipe_aliases.insert(alias.target, vec![alias.name]);
@ -367,7 +366,7 @@ pub fn run() {
} }
} }
let mut line_widths: Map<&str, usize> = Map::new(); let mut line_widths: BTreeMap<&str, usize> = BTreeMap::new();
for (name, recipe) in &justfile.recipes { for (name, recipe) in &justfile.recipes {
if recipe.private { if recipe.private {
@ -399,7 +398,10 @@ pub fn run() {
let alias_doc = format!("alias for `{}`", recipe.name); let alias_doc = format!("alias for `{}`", recipe.name);
for (i, name) in iter::once(name).chain(recipe_aliases.get(name).unwrap_or(&Vec::new())).enumerate() { for (i, name) in iter::once(name)
.chain(recipe_aliases.get(name).unwrap_or(&Vec::new()))
.enumerate()
{
print!(" {}", name); print!(" {}", name);
for parameter in &recipe.parameters { for parameter in &recipe.parameters {
if color.stdout().active() { if color.stdout().active() {
@ -409,7 +411,7 @@ pub fn run() {
} }
} }
// Declaring this outside of the nested loops will probably be more efficient, but // Declaring this outside of the nested loops will probably be more efficient, but
// it creates all sorts of lifetime issues with variables inside the loops. // it creates all sorts of lifetime issues with variables inside the loops.
// If this is inlined like the docs say, it shouldn't make any difference. // If this is inlined like the docs say, it shouldn't make any difference.
let print_doc = |doc| { let print_doc = |doc| {
@ -418,15 +420,15 @@ pub fn run() {
"", "",
doc_color.paint("#"), doc_color.paint("#"),
doc_color.paint(doc), doc_color.paint(doc),
padding = padding = max_line_width
max_line_width.saturating_sub(line_widths.get(name).cloned().unwrap_or(max_line_width)) .saturating_sub(line_widths.get(name).cloned().unwrap_or(max_line_width))
); );
}; };
match (i, recipe.doc) { match (i, recipe.doc) {
(0, Some(doc)) => print_doc(doc), (0, Some(doc)) => print_doc(doc),
(0, None) => (), (0, None) => (),
_ => print_doc(&alias_doc), _ => print_doc(&alias_doc),
} }
println!(); println!();
} }

View File

@ -1,16 +1,12 @@
use common::*; use crate::common::*;
use dotenv;
use brev::OutputError; use brev::OutputError;
use misc::{maybe_s, ticks, write_error_context, And, Or, Tick}; use crate::misc::{maybe_s, ticks, write_error_context, And, Or, Tick};
use self::RuntimeError::*;
pub type RunResult<'a, T> = Result<T, RuntimeError<'a>>; pub type RunResult<'a, T> = Result<T, RuntimeError<'a>>;
fn write_token_error_context(f: &mut fmt::Formatter, token: &Token) -> Result<(), fmt::Error> { fn write_token_error_context(f: &mut Formatter, token: &Token) -> Result<(), fmt::Error> {
write_error_context( write_error_context(
f, f,
token.text, token.text,
@ -87,6 +83,7 @@ pub enum RuntimeError<'a> {
impl<'a> RuntimeError<'a> { impl<'a> RuntimeError<'a> {
pub fn code(&self) -> Option<i32> { pub fn code(&self) -> Option<i32> {
use RuntimeError::*;
match *self { match *self {
Code { code, .. } Code { code, .. }
| Backtick { | Backtick {
@ -99,8 +96,9 @@ impl<'a> RuntimeError<'a> {
} }
impl<'a> Display for RuntimeError<'a> { impl<'a> Display for RuntimeError<'a> {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
use RuntimeError::*; use RuntimeError::*;
let color = if f.alternate() { let color = if f.alternate() {
Color::always() Color::always()
} else { } else {

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
pub fn parse_success(text: &str) -> Justfile { pub fn parse_success(text: &str) -> Justfile {
match Parser::parse(text) { match Parser::parse(text) {
@ -21,7 +21,7 @@ macro_rules! compilation_error_test {
fn $name() { fn $name() {
let input = $input; let input = $input;
let expected = ::CompilationError { let expected = crate::compilation_error::CompilationError {
text: input, text: input,
index: $index, index: $index,
line: $line, line: $line,
@ -30,8 +30,8 @@ macro_rules! compilation_error_test {
kind: $kind, kind: $kind,
}; };
let tokens = ::Lexer::lex(input).unwrap(); let tokens = crate::lexer::Lexer::lex(input).unwrap();
let parser = ::Parser::new(input, tokens); let parser = crate::parser::Parser::new(input, tokens);
if let Err(error) = parser.justfile() { if let Err(error) = parser.justfile() {
assert_eq!(error.text, expected.text); assert_eq!(error.text, expected.text);

View File

@ -1,4 +1,4 @@
use common::*; use crate::common::*;
#[derive(Debug, PartialEq, Clone)] #[derive(Debug, PartialEq, Clone)]
pub struct Token<'a> { pub struct Token<'a> {
@ -49,7 +49,7 @@ pub enum TokenKind {
} }
impl Display for TokenKind { impl Display for TokenKind {
fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> { fn fmt(&self, f: &mut Formatter) -> Result<(), fmt::Error> {
use TokenKind::*; use TokenKind::*;
write!( write!(
f, f,

View File

@ -1,9 +1,3 @@
extern crate brev;
extern crate executable_path;
extern crate libc;
extern crate target;
extern crate tempdir;
use executable_path::executable_path; use executable_path::executable_path;
use libc::{EXIT_FAILURE, EXIT_SUCCESS}; use libc::{EXIT_FAILURE, EXIT_SUCCESS};
use std::env; use std::env;

View File

@ -1,8 +1,3 @@
extern crate brev;
extern crate executable_path;
extern crate libc;
extern crate tempdir;
use executable_path::executable_path; use executable_path::executable_path;
use std::{ use std::{
process::Command, process::Command,

View File

@ -1,8 +1,3 @@
extern crate brev;
extern crate executable_path;
extern crate target;
extern crate tempdir;
use executable_path::executable_path; use executable_path::executable_path;
use std::path::Path; use std::path::Path;
use std::process; use std::process;

View File

@ -1,7 +1,3 @@
extern crate brev;
extern crate executable_path;
extern crate tempdir;
use executable_path::executable_path; use executable_path::executable_path;
use std::{fs, path, process, str}; use std::{fs, path, process, str};
use tempdir::TempDir; use tempdir::TempDir;

View File

@ -1,6 +1,3 @@
extern crate executable_path;
extern crate tempdir;
use executable_path::executable_path; use executable_path::executable_path;
use std::{error::Error, fs, process::Command}; use std::{error::Error, fs, process::Command};
use tempdir::TempDir; use tempdir::TempDir;