aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-11-28 23:34:35 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-11-28 23:34:35 -0800
commita699c92cdceb0382d9bfec37724166145a7eb6df (patch)
treed8a83b58cd8a59e912d1e0eafffd05dccdc11554 /src/bin
parent3c2fbe17cc3e8b8a6199e2ad62c23fbbb18487ff (diff)
downloadgeniza-a699c92cdceb0382d9bfec37724166145a7eb6df.tar.gz
geniza-a699c92cdceb0382d9bfec37724166145a7eb6df.zip
WIP on node (synchronization) code
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/geniza-net.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/bin/geniza-net.rs b/src/bin/geniza-net.rs
index 38dc507..dd80c4f 100644
--- a/src/bin/geniza-net.rs
+++ b/src/bin/geniza-net.rs
@@ -55,6 +55,19 @@ fn run() -> Result<()> {
.about("Prints the DNS name to query (mDNS or centrally) for peers")
.arg_from_usage("<dat_key> 'dat key (public key) to convert (in hex)'"),
)
+ .subcommand(
+ SubCommand::with_name("naive-clone")
+ .about("Pulls a drive from a single (known) peer, using a naive algorithm")
+ .arg(Arg::with_name("dat-dir")
+ .short("d")
+ .long("dat-dir")
+ .value_name("PATH")
+ .help("dat drive directory")
+ .default_value(".dat")
+ .takes_value(true))
+ .arg_from_usage("<host_port> 'peer host:port to connect to'")
+ .arg_from_usage("<dat_key> 'dat key (public key) to pull"),
+ )
.get_matches();
@@ -113,6 +126,17 @@ fn run() -> Result<()> {
}
println!(".dat.local");
}
+ ("naive-clone", Some(subm)) => {
+ let host_port = subm.value_of("host_port").unwrap();
+ let dat_key = subm.value_of("dat_key").unwrap();
+ let key_bytes = parse_dat_key(&dat_key)?;
+ let dir = Path::new(subm.value_of("dat-dir").unwrap());
+ let mut metadata = SleepDirRegister::create(&dir, "metadata")?;
+ node_simple_clone(host_port, &key_bytes, &mut metadata, false)?;
+ // TODO: read out content key from metadata register
+ //let content = SleepDirRegister::create(&dir, "content")?;
+ //node_simple_clone(host_port, &key_bytes, &mut content, true)?;
+ }
_ => {
println!("Missing or unimplemented command!");
println!("{}", matches.usage());