Move read-manifest to clap
authorAleksey Kladov <aleksey.kladov@gmail.com>
Thu, 8 Mar 2018 09:05:42 +0000 (12:05 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Thu, 8 Mar 2018 20:30:47 +0000 (23:30 +0300)
src/bin/cargo.rs
src/bin/cli/mod.rs
src/bin/cli/read_manifest.rs [new file with mode: 0644]

index 9a9b010b8f5381dcfbc4d077e65933d9ff706fbf..448ea8f6f4188c25b05e6cebec92e280455011c8 100644 (file)
@@ -91,7 +91,7 @@ fn main() {
     let is_clapified = ::std::env::args().any(|arg| match arg.as_ref() {
         "build" | "bench" | "check" | "clean" | "doc" | "fetch" | "generate-lockfile" | "git-checkout" |
         "init" | "install" | "locate-project" | "login" | "metadata" | "new" |
-        "owner" | "package" | "pkgid" | "publish" => true,
+        "owner" | "package" | "pkgid" | "publish" | "read-manifest" => true,
         _ => false
     });
 
@@ -138,7 +138,7 @@ macro_rules! each_subcommand{
 //        $mac!(package);
 //        $mac!(pkgid);
 //        $mac!(publish);
-        $mac!(read_manifest);
+//        $mac!(read_manifest);
         $mac!(run);
         $mac!(rustc);
         $mac!(rustdoc);
index 86459623b69931e09fe75784c3bc7d6b9eae17cd..eb3b1df11b26074a372d74c0b08028f825447437 100644 (file)
@@ -9,7 +9,7 @@ use std::path::PathBuf;
 use clap::{AppSettings, Arg, ArgMatches};
 
 use cargo::{self, Config, CargoResult, CargoError, CliError};
-use cargo::core::{Workspace, Source, SourceId, GitReference};
+use cargo::core::{Workspace, Source, SourceId, GitReference, Package};
 use cargo::util::{ToUrl, CargoResultExt};
 use cargo::util::important_paths::find_root_manifest_for_wd;
 use cargo::ops::{self, MessageFormat, Packages, CompileOptions, CompileMode, VersionControl,
@@ -448,6 +448,12 @@ about this warning.";
             })?;
             return Ok(());
         }
+        ("read-manifest", Some(args)) => {
+            let root = root_manifest_from_args(config, args)?;
+            let pkg = Package::for_path(&root, config)?;
+            cargo::print_json(&pkg);
+            return Ok(());
+        }
         _ => return Ok(())
     }
 }
@@ -535,6 +541,7 @@ See 'cargo help <command>' for more information on a specific command.
             package::cli(),
             pkgid::cli(),
             publish::cli(),
+            read_manifest::cli(),
         ])
     ;
     app
@@ -561,6 +568,7 @@ mod owner;
 mod package;
 mod pkgid;
 mod publish;
+mod read_manifest;
 
 mod utils {
     use clap::{self, SubCommand, AppSettings};
diff --git a/src/bin/cli/read_manifest.rs b/src/bin/cli/read_manifest.rs
new file mode 100644 (file)
index 0000000..29d3aa5
--- /dev/null
@@ -0,0 +1,8 @@
+use super::utils::*;
+
+pub fn cli() -> App {
+    subcommand("read-manifest")
+        .about("Deprecated, use `cargo metadata --no-deps` instead.
+Print a JSON representation of a Cargo.toml manifest.")
+        .arg_manifest_path()
+}