use bashkit::Bash;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let tmp = tempfile::tempdir()?;
std::fs::write(tmp.path().join("data.txt"), "original content\n")?;
std::fs::create_dir(tmp.path().join("output"))?;
println!("=== RealFs ReadWrite Example ===\n");
println!("Host directory: {}\n", tmp.path().display());
let mut bash = Bash::builder()
.mount_real_readwrite_at(tmp.path(), "/workspace")
.build();
let result = bash.exec("cat /workspace/data.txt").await?;
println!("Original: {}", result.stdout);
bash.exec("echo 'modified by bashkit' >> /workspace/data.txt")
.await?;
let result = bash.exec("cat /workspace/data.txt").await?;
println!("After append:\n{}", result.stdout);
bash.exec("echo 'report generated' > /workspace/output/report.txt")
.await?;
let data = std::fs::read_to_string(tmp.path().join("data.txt"))?;
println!("Host sees: {}", data);
assert!(data.contains("modified by bashkit"));
let report = std::fs::read_to_string(tmp.path().join("output/report.txt"))?;
println!("Host report: {}", report);
assert_eq!(report, "report generated\n");
println!("Host files successfully modified from virtual bash!");
Ok(())
}