fn main() { println!("cargo:rerun-if-changed=api/lua"); println!("cargo:rerun-if-changed=api/protocol"); let xdg = xdg::BaseDirectories::with_prefix("pinnacle").unwrap(); let proto_dir = xdg.place_data_file("protobuf").unwrap(); let default_config_dir = xdg.place_data_file("default_config").unwrap(); let remove_protos = format!("rm -r {proto_dir:?}"); let copy_protos = format!("cp -r ./api/protocol {proto_dir:?}"); let remove_default_config = format!("rm -r {default_config_dir:?}"); let copy_default_config = format!("cp -r ./api/lua/examples/default {default_config_dir:?}"); std::process::Command::new("/bin/sh") .arg("-c") .arg(&remove_protos) .spawn() .unwrap() .wait() .unwrap(); std::process::Command::new("/bin/sh") .arg("-c") .arg(©_protos) .spawn() .unwrap() .wait() .unwrap(); std::process::Command::new("/bin/sh") .arg("-c") .arg(&remove_default_config) .spawn() .unwrap() .wait() .unwrap(); std::process::Command::new("/bin/sh") .arg("-c") .arg(©_default_config) .spawn() .unwrap() .wait() .unwrap(); std::env::set_current_dir("api/lua").unwrap(); std::process::Command::new("luarocks") .arg("make") .arg("--local") .spawn() .expect("Luarocks is not installed") .wait() .unwrap(); }