From 1dbab207ece88a47f92b951a83ef8d95dc40fe1c Mon Sep 17 00:00:00 2001 From: Ferris Tseng Date: Tue, 23 Feb 2021 23:26:48 -0500 Subject: migrate examples to separate crate --- ipfs-api-examples/examples/mfs.rs | 88 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 ipfs-api-examples/examples/mfs.rs (limited to 'ipfs-api-examples/examples/mfs.rs') diff --git a/ipfs-api-examples/examples/mfs.rs b/ipfs-api-examples/examples/mfs.rs new file mode 100644 index 0000000..e644872 --- /dev/null +++ b/ipfs-api-examples/examples/mfs.rs @@ -0,0 +1,88 @@ +// Copyright 2017 rust-ipfs-api Developers +// +// Licensed under the Apache License, Version 2.0, or the MIT license , 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}; +use std::fs::File; + +fn print_stat(stat: response::FilesStatResponse) { + eprintln!(" type : {}", stat.typ); + eprintln!(" hash : {}", stat.hash); + eprintln!(" size : {}", stat.size); + eprintln!(" cum. size: {}", stat.cumulative_size); + eprintln!(" blocks : {}", stat.blocks); + eprintln!(); +} + +// Creates an Ipfs client, and makes some calls to the Mfs Api. +// +#[ipfs_api_examples::main] +async fn main() { + tracing_subscriber::fmt::init(); + + eprintln!("note: this must be run in the root of the project repository"); + eprintln!("connecting to localhost:5001..."); + + let client = IpfsClient::default(); + + eprintln!("making /test..."); + eprintln!(); + + if let Err(e) = client.files_mkdir("/test", false).await { + eprintln!("error making /test: {}", e); + return; + } + + eprintln!("making dirs /test/does/not/exist/yet..."); + eprintln!(); + + if let Err(e) = client.files_mkdir("/test/does/not/exist/yet", true).await { + eprintln!("error making /test/does/not/exist/yet: {}", e); + return; + } + + eprintln!("getting status of /test/does..."); + eprintln!(); + + match client.files_stat("/test/does").await { + Ok(stat) => print_stat(stat), + Err(e) => { + eprintln!("error getting status of /test/does: {}", e); + return; + } + } + + eprintln!("writing source file to /test/mfs.rs"); + eprintln!(); + + let src = File::open(file!()).expect("could not read source file"); + + if let Err(e) = client.files_write("/test/mfs.rs", true, true, src).await { + eprintln!("error writing source file /test/mfs.rs: {}", e); + return; + } + + eprintln!("getting status of /test/mfs.rs..."); + eprintln!(); + + match client.files_stat("/test/mfs.rs").await { + Ok(stat) => print_stat(stat), + Err(e) => { + eprintln!("error getting status of /test/mfs.rs: {}", e); + return; + } + } + + eprintln!("removing /test..."); + eprintln!(); + + if let Err(e) = client.files_rm("/test", true).await { + eprintln!("error removing /test: {}", e); + } + + eprintln!("done!"); +} -- cgit v1.2.3