diff options
author | GeckoEidechse <40122905+GeckoEidechse@users.noreply.github.com> | 2023-10-13 02:27:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-13 02:27:29 +0200 |
commit | f515a3b702f781c0da438840071def1b37d2e1bc (patch) | |
tree | 5b078d7aeff8d3333f810ca21400403e7d25723f /src-tauri/src/platform_specific/mod.rs | |
parent | c3c1aab86e7254f8f1724f3e13a4f17a9974f422 (diff) | |
download | FlightCore-f515a3b702f781c0da438840071def1b37d2e1bc.tar.gz FlightCore-f515a3b702f781c0da438840071def1b37d2e1bc.zip |
refactor: Move platform specific logic to proper mod (#616)
in an effort to clean up `main.rs`
* refactor: Move Proton related wrapper functions
to root of platform_specific module
* refactor: Move Linux checks to Linux mod
for platform specific stuff
* refactor: Move Linux checks wrapper to mod
for platform specific stuff
Diffstat (limited to 'src-tauri/src/platform_specific/mod.rs')
-rw-r--r-- | src-tauri/src/platform_specific/mod.rs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src-tauri/src/platform_specific/mod.rs b/src-tauri/src/platform_specific/mod.rs index 84bd478a..d5acfde8 100644 --- a/src-tauri/src/platform_specific/mod.rs +++ b/src-tauri/src/platform_specific/mod.rs @@ -3,3 +3,49 @@ pub mod windows; #[cfg(target_os = "linux")] pub mod linux; + +/// On Linux attempts to install NorthstarProton +/// On Windows simply returns an error message +#[tauri::command] +pub async fn install_northstar_proton_wrapper() -> Result<(), String> { + #[cfg(target_os = "linux")] + return linux::install_ns_proton().map_err(|err| err.to_string()); + + #[cfg(target_os = "windows")] + Err("Not supported on Windows".to_string()) +} + +#[tauri::command] +pub async fn uninstall_northstar_proton_wrapper() -> Result<(), String> { + #[cfg(target_os = "linux")] + return linux::uninstall_ns_proton(); + + #[cfg(target_os = "windows")] + Err("Not supported on Windows".to_string()) +} + +#[tauri::command] +pub async fn get_local_northstar_proton_wrapper_version() -> Result<String, String> { + #[cfg(target_os = "linux")] + return linux::get_local_ns_proton_version(); + + #[cfg(target_os = "windows")] + Err("Not supported on Windows".to_string()) +} + +/// Returns true if linux compatible +#[tauri::command] +pub async fn linux_checks() -> Result<(), String> { + // Different behaviour depending on OS + // MacOS is missing as it is not a target + // in turn this means this application will not build on MacOS. + #[cfg(target_os = "windows")] + { + Err("Not available on Windows".to_string()) + } + + #[cfg(target_os = "linux")] + { + linux::linux_checks_librs() + } +} |