summaryrefslogtreecommitdiffstats
path: root/ipfs-cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'ipfs-cli/src')
-rw-r--r--ipfs-cli/src/command/mod.rs1
-rw-r--r--ipfs-cli/src/command/shutdown.rs23
-rw-r--r--ipfs-cli/src/main.rs2
3 files changed, 26 insertions, 0 deletions
diff --git a/ipfs-cli/src/command/mod.rs b/ipfs-cli/src/command/mod.rs
index 351bcf6..c19236b 100644
--- a/ipfs-cli/src/command/mod.rs
+++ b/ipfs-cli/src/command/mod.rs
@@ -36,4 +36,5 @@ pub mod dns;
pub mod file;
pub mod files;
pub mod filestore;
+pub mod shutdown;
pub mod version;
diff --git a/ipfs-cli/src/command/shutdown.rs b/ipfs-cli/src/command/shutdown.rs
new file mode 100644
index 0000000..6cb9c1d
--- /dev/null
+++ b/ipfs-cli/src/command/shutdown.rs
@@ -0,0 +1,23 @@
+// 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;
+use command::EXPECTED_API;
+use ipfs_api::IpfsClient;
+use tokio_core::reactor::Core;
+
+pub fn signature<'a, 'b>() -> App<'a, 'b> {
+ clap_app!(
+ @subcommand shutdown =>
+ (about: "Shutdown IPFS daemon")
+ )
+}
+
+pub fn handle(core: &mut Core, client: &IpfsClient) {
+ core.run(client.shutdown()).expect(EXPECTED_API);
+}
diff --git a/ipfs-cli/src/main.rs b/ipfs-cli/src/main.rs
index b0262aa..eafa12c 100644
--- a/ipfs-cli/src/main.rs
+++ b/ipfs-cli/src/main.rs
@@ -39,6 +39,7 @@ fn main() {
(subcommand: command::file::signature())
(subcommand: command::files::signature())
(subcommand: command::filestore::signature())
+ (subcommand: command::shutdown::signature())
(subcommand: command::version::signature())
).get_matches();
@@ -60,6 +61,7 @@ fn main() {
("file", Some(args)) => command::file::handle(&mut core, &client, args),
("files", Some(args)) => command::files::handle(&mut core, &client, args),
("filestore", Some(args)) => command::filestore::handle(&mut core, &client, args),
+ ("shutdown", _) => command::shutdown::handle(&mut core, &client),
("version", _) => command::version::handle(&mut core, &client),
_ => unreachable!(),
}