diff options
author | Bryan Newbold <bnewbold@archive.org> | 2021-08-10 16:26:27 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@archive.org> | 2021-08-10 16:26:28 -0700 |
commit | 4dcd41853a5f8c6c7b5941fb3b92fa47aa1982d8 (patch) | |
tree | f218e9a6aef831db85d1382d310b726c1cd50de4 /fatcat-cli/src/main.rs | |
parent | f1499a583f7730c9133a56c0419a3a0fff7bb3a5 (diff) | |
download | fatcat-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.rs | 28 |
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()?)? + } } } } |