Browse Source

Add --version command (and bump version)

Ben S 11 years ago
parent
commit
67f60e614b
3 changed files with 11 additions and 2 deletions
  1. 1 1
      Cargo.lock
  2. 1 1
      Cargo.toml
  3. 9 0
      src/options.rs

+ 1 - 1
Cargo.lock

@@ -1,6 +1,6 @@
 [root]
 name = "exa"
-version = "0.1.0"
+version = "0.2.0"
 dependencies = [
  "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)",

+ 1 - 1
Cargo.toml

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

+ 9 - 0
src/options.rs

@@ -68,6 +68,8 @@ impl Options {
         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("x", "across",    "sort multi-column view entries across");
+
+        opts.optflag("",  "version",   "display version of exa");
         opts.optflag("?", "help",      "show list of command-line options");
 
         if xattr::feature_implemented() {
@@ -82,6 +84,9 @@ impl Options {
         if matches.opt_present("help") {
             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") {
             Some(word) => try!(SortField::from_word(word)),
@@ -191,6 +196,9 @@ pub enum Misfire {
     /// this enum isn't named Error!
     Help(String),
 
+    /// The user wanted the version number.
+    Version,
+
     /// Two options were given that conflict with one another.
     Conflict(&'static str, &'static str),
 
@@ -219,6 +227,7 @@ impl fmt::Display for Misfire {
         match *self {
             InvalidOptions(ref e) => write!(f, "{}", e),
             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),
             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),