summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFerris Tseng <ferristseng@fastmail.fm>2017-11-26 11:42:51 -0500
committerFerris Tseng <ferristseng@fastmail.fm>2017-11-26 11:42:51 -0500
commitedcf3de74d9e0b26fe38b4989b6d73395cf8605e (patch)
treed9148bfc1b2601f95ba5b71cd82d98c26c398336
parenta419d102241c11e47ffc9476dd1800e70fd94320 (diff)
add diag commands
-rw-r--r--ipfs-cli/src/command/bitswap.rs4
-rw-r--r--ipfs-cli/src/command/dht.rs4
-rw-r--r--ipfs-cli/src/command/diag.rs76
-rw-r--r--ipfs-cli/src/command/mod.rs1
-rw-r--r--ipfs-cli/src/main.rs2
5 files changed, 85 insertions, 2 deletions
diff --git a/ipfs-cli/src/command/bitswap.rs b/ipfs-cli/src/command/bitswap.rs
index f3ccb0a..798670b 100644
--- a/ipfs-cli/src/command/bitswap.rs
+++ b/ipfs-cli/src/command/bitswap.rs
@@ -74,7 +74,9 @@ pub fn handle(core: &mut Core, client: &IpfsClient, args: &ArgMatches) {
core.run(client.bitswap_unwant(&key)).expect(EXPECTED_API);
- println!("OK");
+ println!("");
+ println!(" OK");
+ println!("");
}
("wantlist", Some(args)) => {
let peer = args.value_of("PEER");
diff --git a/ipfs-cli/src/command/dht.rs b/ipfs-cli/src/command/dht.rs
index fbad7ac..44d4aa0 100644
--- a/ipfs-cli/src/command/dht.rs
+++ b/ipfs-cli/src/command/dht.rs
@@ -104,5 +104,7 @@ pub fn handle(core: &mut Core, client: &IpfsClient, args: &ArgMatches) {
_ => unreachable!(),
};
- core.run(req.for_each(print_dht_response)).expect(EXPECTED_API);
+ core.run(req.for_each(print_dht_response)).expect(
+ EXPECTED_API,
+ );
}
diff --git a/ipfs-cli/src/command/diag.rs b/ipfs-cli/src/command/diag.rs
new file mode 100644
index 0000000..24f65aa
--- /dev/null
+++ b/ipfs-cli/src/command/diag.rs
@@ -0,0 +1,76 @@
+// Copyright 2017 rust-ipfs-api Developers
+//
+// Licensed under the Apache License, Version 2.0, <LICENSE-APACHE or
+// http://apache.org/licenses/LICENSE-2.0> or the MIT license <LICENSE-MIT or
+// http://opensource.org/licenses/MIT>, at your option. This file may not be
+// 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;
+
+
+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",
+ ));
+
+ clap_app!(
+ @subcommand diag =>
+ (@setting SubcommandRequiredElseHelp)
+ (@subcommand cmds =>
+ (@setting SubcommandRequiredElseHelp)
+ (@subcommand clear =>
+ (about: "Clear inactive requests from the log")
+ )
+ (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);
+
+ println!("");
+ println!(" OK");
+ println!("");
+ }
+ ("set-time", Some(args)) => {
+ let time = args.value_of("TIME").unwrap();
+
+ core.run(client.diag_cmds_set_time(&time)).expect(
+ EXPECTED_API,
+ );
+
+ println!("");
+ println!(" OK");
+ println!("");
+ }
+ _ => unreachable!(),
+ }
+ }
+ ("sys", _) => {
+ let sys = core.run(client.diag_sys()).expect(EXPECTED_API);
+
+ println!("");
+ println!(" {}", sys);
+ println!("");
+ }
+ _ => unreachable!(),
+ }
+}
diff --git a/ipfs-cli/src/command/mod.rs b/ipfs-cli/src/command/mod.rs
index cfb5582..11df651 100644
--- a/ipfs-cli/src/command/mod.rs
+++ b/ipfs-cli/src/command/mod.rs
@@ -34,4 +34,5 @@ pub mod commands;
pub mod config;
pub mod dag;
pub mod dht;
+pub mod diag;
pub mod version;
diff --git a/ipfs-cli/src/main.rs b/ipfs-cli/src/main.rs
index 92bfc29..a096bc8 100644
--- a/ipfs-cli/src/main.rs
+++ b/ipfs-cli/src/main.rs
@@ -34,6 +34,7 @@ fn main() {
(subcommand: command::config::signature())
(subcommand: command::dag::signature())
(subcommand: command::dht::signature())
+ (subcommand: command::diag::signature())
(subcommand: command::version::signature())
).get_matches();
@@ -50,6 +51,7 @@ fn main() {
("config", Some(args)) => command::config::handle(&mut core, &client, &args),
("dag", Some(args)) => command::dag::handle(&mut core, &client, &args),
("dht", Some(args)) => command::dht::handle(&mut core, &client, &args),
+ ("diag", Some(args)) => command::diag::handle(&mut core, &client, &args),
("version", _) => command::version::handle(&mut core, &client),
_ => unreachable!(),
}