Add --version command (and bump version)

This commit is contained in:
Ben S 2015-03-02 14:54:38 +00:00
parent 369a421359
commit 67f60e614b
3 changed files with 11 additions and 2 deletions

2
Cargo.lock generated
View File

@ -1,6 +1,6 @@
[root] [root]
name = "exa" name = "exa"
version = "0.1.0" version = "0.2.0"
dependencies = [ dependencies = [
"ansi_term 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", "ansi_term 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "bitflags 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",

View File

@ -1,6 +1,6 @@
[package] [package]
name = "exa" name = "exa"
version = "0.1.0" version = "0.2.0"
authors = [ "ogham@bsago.me" ] authors = [ "ogham@bsago.me" ]
[[bin]] [[bin]]

View File

@ -68,6 +68,8 @@ impl Options {
opts.optflag("u", "accessed", "display timestamp of last access for a file"); opts.optflag("u", "accessed", "display timestamp of last access for a file");
opts.optflag("U", "created", "display timestamp of creation for a file"); opts.optflag("U", "created", "display timestamp of creation for a file");
opts.optflag("x", "across", "sort multi-column view entries across"); opts.optflag("x", "across", "sort multi-column view entries across");
opts.optflag("", "version", "display version of exa");
opts.optflag("?", "help", "show list of command-line options"); opts.optflag("?", "help", "show list of command-line options");
if xattr::feature_implemented() { if xattr::feature_implemented() {
@ -82,6 +84,9 @@ impl Options {
if matches.opt_present("help") { if matches.opt_present("help") {
return Err(Misfire::Help(opts.usage("Usage:\n exa [options] [files...]"))); return Err(Misfire::Help(opts.usage("Usage:\n exa [options] [files...]")));
} }
else if matches.opt_present("version") {
return Err(Misfire::Version);
}
let sort_field = match matches.opt_str("sort") { let sort_field = match matches.opt_str("sort") {
Some(word) => try!(SortField::from_word(word)), Some(word) => try!(SortField::from_word(word)),
@ -191,6 +196,9 @@ pub enum Misfire {
/// this enum isn't named Error! /// this enum isn't named Error!
Help(String), Help(String),
/// The user wanted the version number.
Version,
/// Two options were given that conflict with one another. /// Two options were given that conflict with one another.
Conflict(&'static str, &'static str), Conflict(&'static str, &'static str),
@ -219,6 +227,7 @@ impl fmt::Display for Misfire {
match *self { match *self {
InvalidOptions(ref e) => write!(f, "{}", e), InvalidOptions(ref e) => write!(f, "{}", e),
Help(ref text) => write!(f, "{}", text), Help(ref text) => write!(f, "{}", text),
Version => write!(f, "exa {}", env!("CARGO_PKG_VERSION")),
Conflict(a, b) => write!(f, "Option --{} conflicts with option {}.", a, b), Conflict(a, b) => write!(f, "Option --{} conflicts with option {}.", a, b),
Useless(a, false, b) => write!(f, "Option --{} is useless without option --{}.", a, b), Useless(a, false, b) => write!(f, "Option --{} is useless without option --{}.", a, b),
Useless(a, true, b) => write!(f, "Option --{} is useless given option --{}.", a, b), Useless(a, true, b) => write!(f, "Option --{} is useless given option --{}.", a, b),