summaryrefslogtreecommitdiffstats
path: root/ipfs-cli/src/command/commands.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-cli/src/command/commands.rs')
-rw-r--r--ipfs-cli/src/command/commands.rs38
1 files changed, 22 insertions, 16 deletions
diff --git a/ipfs-cli/src/command/commands.rs b/ipfs-cli/src/command/commands.rs
index ffba5f2..4ded502 100644
--- a/ipfs-cli/src/command/commands.rs
+++ b/ipfs-cli/src/command/commands.rs
@@ -1,5 +1,4 @@
// 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
@@ -7,17 +6,9 @@
//
use clap::App;
-use command::EXPECTED_API;
-use ipfs_api::IpfsClient;
+use command::CliCommand;
+use futures::Future;
use ipfs_api::response::CommandsResponse;
-use tokio_core::reactor::Core;
-
-pub fn signature<'a, 'b>() -> App<'a, 'b> {
- clap_app!(
- @subcommand commands =>
- (about: "List all available commands")
- )
-}
fn recursive_print_commands(cmd: CommandsResponse, stack: &mut Vec<String>) {
if cmd.subcommands.is_empty() {
@@ -35,10 +26,25 @@ fn recursive_print_commands(cmd: CommandsResponse, stack: &mut Vec<String>) {
}
}
-pub fn handle(core: &mut Core, client: &IpfsClient) {
- let commands = core.run(client.commands()).expect(EXPECTED_API);
+pub struct Command;
+
+impl CliCommand for Command {
+ const NAME: &'static str = "commands";
- println!();
- recursive_print_commands(commands, &mut Vec::new());
- println!();
+ fn signature<'a, 'b>() -> App<'a, 'b> {
+ clap_app!(
+ @subcommand commands =>
+ (about: "List all available commands")
+ )
+ }
+
+ handle!(
+ (_args, client) => {
+ client.commands().map(|commands| {
+ println!();
+ recursive_print_commands(commands, &mut Vec::new());
+ println!();
+ })
+ }
+ );
}