use std::collections::HashMap;
fn main() {
let app = biolib::load("test-team/hello-world:0.0.2").expect("Failed to load app");
println!("Loaded app: {}", app.uri());
let mut job = app.cli(None, None, None, true).expect("Failed to run app");
let exit_code = job.get_exit_code().expect("Failed to get exit code");
let stdout = job.get_stdout().expect("Failed to get stdout");
let stderr = job.get_stderr().expect("Failed to get stderr");
println!("Exit code: {exit_code}");
println!("Stdout: {}", String::from_utf8_lossy(&stdout));
if !stderr.is_empty() {
eprintln!("Stderr: {}", String::from_utf8_lossy(&stderr));
}
let files = job.list_output_files().expect("Failed to list files");
for file in &files {
println!("Output file: {}", file.path);
}
}
fn _example_with_args() {
let app = biolib::load("test-team/hello-world:0.0.2").expect("Failed to load app");
let args = vec!["--name".to_string(), "World".to_string()];
let mut job = app
.cli(Some(args), None, None, true)
.expect("Failed to run app");
println!(
"Stdout: {}",
String::from_utf8_lossy(&job.get_stdout().unwrap())
);
}
fn _example_with_files() {
let app = biolib::load("test-team/hello-world:0.0.2").expect("Failed to load app");
let mut files = HashMap::new();
files.insert("input.txt".to_string(), b"Hello from file".to_vec());
let mut job = app
.cli(None, None, Some(files), true)
.expect("Failed to run app");
let exit_code = job.get_exit_code().unwrap();
println!("Exit code: {exit_code}");
job.save_files("output_dir", true)
.expect("Failed to save files");
}
fn _example_search() {
let results = biolib::search(Some("hello"), None, 5).expect("Search failed");
for uri in &results {
println!("Found: {uri}");
}
}
fn _example_get_result() {
let job_id = "some-job-uuid";
let mut job = biolib::get_result(job_id, None).expect("Failed to get result");
let stdout = job.get_stdout().expect("Failed to get stdout");
println!("Stdout: {}", String::from_utf8_lossy(&stdout));
}
fn _example_non_blocking() {
let app = biolib::load("test-team/hello-world:0.0.2").expect("Failed to load app");
let mut job = app
.cli(None, None, None, false)
.expect("Failed to start job");
println!("Job ID: {}", job.id());
println!("Share link: {}", job.get_shareable_link());
job.wait(None).expect("Failed to wait for job");
let exit_code = job.get_exit_code().unwrap();
println!("Exit code: {exit_code}");
}