summaryrefslogtreecommitdiffstats
path: root/ipfs-cli/src/command/diag.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-cli/src/command/diag.rs')
-rw-r--r--ipfs-cli/src/command/diag.rs117
1 files changed, 62 insertions, 55 deletions
diff --git a/ipfs-cli/src/command/diag.rs b/ipfs-cli/src/command/diag.rs
index 7ce6c22..1c5dee9 100644
--- a/ipfs-cli/src/command/diag.rs
+++ b/ipfs-cli/src/command/diag.rs
@@ -6,69 +6,76 @@
// copied, modified, or distributed except according to those terms.
//
-use clap::{App, Arg, ArgMatches, SubCommand};
-use command::EXPECTED_API;
-use ipfs_api::IpfsClient;
-use tokio_core::reactor::Core;
+use clap::{App, Arg, SubCommand};
+use command::CliCommand;
+use futures::Future;
-pub fn signature<'a, 'b>() -> App<'a, 'b> {
- // The clap macro does not allow hyphenated command names,
- // so the `set-time` command has to be manually instantiated.
- //
- let set_time_command = SubCommand::with_name("set-time")
- .about("Set how long to keep inactive requests in the log")
- .arg(
- Arg::with_name("TIME")
- .required(true)
- .index(1)
- .help("Time to keep inactive requests in the log"),
- );
+pub struct Command;
- clap_app!(
- @subcommand diag =>
- (@setting SubcommandRequiredElseHelp)
- (@subcommand cmds =>
+impl CliCommand for Command {
+ const NAME: &'static str = "diag";
+
+ fn signature<'a, 'b>() -> App<'a, 'b> {
+ // The clap macro does not allow hyphenated command names,
+ // so the `set-time` command has to be manually instantiated.
+ //
+ let set_time_command = SubCommand::with_name("set-time")
+ .about("Set how long to keep inactive requests in the log")
+ .arg(
+ Arg::with_name("TIME")
+ .required(true)
+ .index(1)
+ .help("Time to keep inactive requests in the log"),
+ );
+
+ clap_app!(
+ @subcommand diag =>
(@setting SubcommandRequiredElseHelp)
- (@subcommand clear =>
- (about: "Clear inactive requests from the log")
+ (@subcommand cmds =>
+ (@setting SubcommandRequiredElseHelp)
+ (@subcommand clear =>
+ (about: "Clear inactive requests from the log")
+ )
+ (subcommand: set_time_command)
)
- (subcommand: set_time_command)
- )
- (@subcommand sys =>
- (about: "Print system diagnostic information")
- )
- )
-}
-
-pub fn handle(core: &mut Core, client: &IpfsClient, args: &ArgMatches) {
- match args.subcommand() {
- ("cmds", Some(args)) => match args.subcommand() {
- ("clear", _) => {
- core.run(client.diag_cmds_clear()).expect(EXPECTED_API);
+ (@subcommand sys =>
+ (about: "Print system diagnostic information")
+ )
+ )
+ }
- println!("");
- println!(" OK");
- println!("");
- }
- ("set-time", Some(args)) => {
+ handle!(
+ client;
+ ("cmds") => {
+ ("clear", _args) => {
+ client
+ .diag_cmds_clear()
+ .map(|_| {
+ println!("");
+ println!(" OK");
+ println!("");
+ })
+ },
+ ("set-time", args) => {
let time = args.value_of("TIME").unwrap();
- core.run(client.diag_cmds_set_time(&time))
- .expect(EXPECTED_API);
-
- println!("");
- println!(" OK");
- println!("");
+ client
+ .diag_cmds_set_time(&time)
+ .map(|_| {
+ println!("");
+ println!(" OK");
+ println!("");
+ })
}
- _ => unreachable!(),
},
- ("sys", _) => {
- let sys = core.run(client.diag_sys()).expect(EXPECTED_API);
-
- println!();
- println!(" {}", sys);
- println!();
+ ("sys", _args) => {
+ client
+ .diag_sys()
+ .map(|sys| {
+ println!();
+ println!(" {}", sys);
+ println!();
+ })
}
- _ => unreachable!(),
- }
+ );
}