use crate::{error::Error, sys::process};
use std::process::Command;
pub fn run() -> Result<(), Error> {
let mut command = studio_command();
if cfg!(windows) {
command.spawn()?;
Ok(())
} else {
process::exec(command).map(|_| ())
}
}
#[cfg(windows)]
fn studio_command() -> Command {
Command::new("roblox-studio:")
}
#[cfg(target_os = "macos")]
fn studio_command() -> Command {
let mut command = Command::new("open");
command.args(["-a", "RobloxStudio"]);
command
}
#[cfg(all(unix, not(target_os = "macos")))]
fn studio_command() -> Command {
let mut command = Command::new("flatpak");
command.args(["run", "org.vinegarhq.Vinegar"]);
command
}