aboutsummaryrefslogtreecommitdiffstats
path: root/fatcat-cli/src/main.rs
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@archive.org>2021-08-10 16:26:27 -0700
committerBryan Newbold <bnewbold@archive.org>2021-08-10 16:26:28 -0700
commit4dcd41853a5f8c6c7b5941fb3b92fa47aa1982d8 (patch)
treef218e9a6aef831db85d1382d310b726c1cd50de4 /fatcat-cli/src/main.rs
parentf1499a583f7730c9133a56c0419a3a0fff7bb3a5 (diff)
downloadfatcat-cli-4dcd41853a5f8c6c7b5941fb3b92fa47aa1982d8.tar.gz
fatcat-cli-4dcd41853a5f8c6c7b5941fb3b92fa47aa1982d8.zip
basic refs-in/refs-out --entity-json search support
This is a bit of a hack to enable easier downloading and other processing of references.
Diffstat (limited to 'fatcat-cli/src/main.rs')
-rw-r--r--fatcat-cli/src/main.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/fatcat-cli/src/main.rs b/fatcat-cli/src/main.rs
index 9e995d2..af22f85 100644
--- a/fatcat-cli/src/main.rs
+++ b/fatcat-cli/src/main.rs
@@ -670,6 +670,34 @@ fn run(opt: Opt) -> Result<()> {
"entity schema output not supported for references index"
));
}
+ (false, true, SearchEntityType::ReferenceIn) => {
+ if !hit["source_release_ident"].is_string() {
+ continue;
+ }
+ let specifier = Specifier::Release(
+ hit["source_release_ident"].as_str().unwrap().to_string(),
+ );
+ let entity = specifier.get_from_api(
+ &mut api_client,
+ expand.clone(),
+ hide.clone(),
+ )?;
+ writeln!(&mut std::io::stdout(), "{}", entity.to_json_string()?)?
+ }
+ (false, true, SearchEntityType::ReferenceOut) => {
+ if !hit["target_release_ident"].is_string() {
+ continue;
+ }
+ let specifier = Specifier::Release(
+ hit["target_release_ident"].as_str().unwrap().to_string(),
+ );
+ let entity = specifier.get_from_api(
+ &mut api_client,
+ expand.clone(),
+ hide.clone(),
+ )?;
+ writeln!(&mut std::io::stdout(), "{}", entity.to_json_string()?)?
+ }
}
}
}