diff --git a/exec/utils/src/bin/datapack.rs b/exec/utils/src/bin/datapack.rs new file mode 100644 index 0000000000..0f84db332d --- /dev/null +++ b/exec/utils/src/bin/datapack.rs @@ -0,0 +1,30 @@ +// Copyright 2019 Facebook, Inc. +// +// This software may be used and distributed according to the terms of the +// GNU General Public License version 2 or any later version. + +use std::path::PathBuf; + +use structopt::StructOpt; + +use revisionstore::{datapack::DataPack, datastore::DataStore, uniondatastore::UnionDataStore}; +use types::{Key, Node, RepoPathBuf}; + +#[derive(StructOpt)] +struct Cli { + #[structopt(short = "n", parse(try_from_str = "Node::from_str"))] + node: Node, + #[structopt(short = "p")] + path: PathBuf, +} + +fn main() { + let args = Cli::from_args(); + let pack = DataPack::new(&args.path).unwrap(); + let mut store = UnionDataStore::new(); + store.add(pack); + + let key = Key::new(RepoPathBuf::new(), args.node); + let result = store.get(&key).unwrap(); + println!("{:?}", String::from_utf8_lossy(&result)); +}