// Args:
// mapdir: act1:wasitests/test_fs/hamlet/act1
// mapdir: act2:wasitests/test_fs/hamlet/act2
// mapdir: act1-again:wasitests/test_fs/hamlet/act1

use std::fs;
use std::io::Write;

pub const BYTE_STR: &'static [u8] = b"abcdefghijklmnopqrstuvwxyz";

fn main() {
    #[cfg(not(target_os = "wasi"))]
    do_logic_on_path(
        "wasitests/test_fs/hamlet/act1/abc",
        "wasitests/test_fs/hamlet/act1/abc",
    );

    #[cfg(target_os = "wasi")]
    do_logic_on_path("/act1/abc", "act1-again/abc");
}

fn do_logic_on_path(path: &'static str, alt_path: &'static str) {
    {
        let mut f = fs::OpenOptions::new()
            .create_new(true)
            .write(true)
            .open(path)
            .unwrap();
        f.write_all(BYTE_STR).unwrap();
    }

    println!("{}", fs::read_to_string(alt_path).unwrap());
    fs::remove_file(path).unwrap();

    let file_path = std::path::Path::new(path);
    if file_path.exists() {
        println!("file is here");
    } else {
        println!("file is gone")
    }
}
