diff options
author | Ferris Tseng <ferristseng@fastmail.fm> | 2021-04-04 20:06:34 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-04 20:06:34 -0400 |
commit | 799f702b22a9b567c0b6b7674210583b02b10d55 (patch) | |
tree | 92d7a1c9dcac42599357097c53caccfbdcaa8105 /ipfs-api-examples/examples/get_commands.rs | |
parent | 4c78f5759c60499eefd4527ea34d574c2fb35c14 (diff) | |
parent | 168f3a5e68780c37f4070ea9d42ac70bd0158292 (diff) |
Divide backends into separate crates
Diffstat (limited to 'ipfs-api-examples/examples/get_commands.rs')
-rw-r--r-- | ipfs-api-examples/examples/get_commands.rs | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ipfs-api-examples/examples/get_commands.rs b/ipfs-api-examples/examples/get_commands.rs new file mode 100644 index 0000000..ea5d350 --- /dev/null +++ b/ipfs-api-examples/examples/get_commands.rs @@ -0,0 +1,47 @@ +// 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 ipfs_api_examples::ipfs_api::{response, IpfsApi, IpfsClient}; + +fn print_recursive(indent: usize, cmd: &response::CommandsResponse) { + let cmd_indent = " ".repeat(indent * 4); + let opt_indent = " ".repeat((indent + 1) * 4); + + eprintln!("{}[{}]", cmd_indent, cmd.name); + + if cmd.options.len() > 0 { + eprintln!("{}* options:", cmd_indent); + for options in cmd.options.iter() { + eprintln!("{}{}", opt_indent, &options.names[..].join(", ")); + } + } + + if cmd.subcommands.len() > 0 { + eprintln!("{}- subcommands:", cmd_indent); + for subcommand in cmd.subcommands.iter() { + print_recursive(indent + 1, subcommand); + } + } +} + +// Creates an Ipfs client, and gets a list of available commands from the +// Ipfs server. +// +#[ipfs_api_examples::main] +async fn main() { + tracing_subscriber::fmt::init(); + + eprintln!("connecting to localhost:5001..."); + + let client = IpfsClient::default(); + + match client.commands().await { + Ok(commands) => print_recursive(0, &commands), + Err(e) => eprintln!("error getting commands: {}", e), + } +} |