83 lines
2.8 KiB
Rust
83 lines
2.8 KiB
Rust
// Learn more about Tauri commands at https://tauri.app/develop/calling-rust/
|
|
use tauri::Manager;
|
|
|
|
pub mod commands;
|
|
pub mod presence;
|
|
pub mod utils;
|
|
use crate::commands::{
|
|
check_for_corruption, download_ezpp_launcher_update_files, exit, find_osu_installation,
|
|
get_beatmapsets_count, get_ezpp_launcher_update_files, get_hwid, get_launcher_version,
|
|
get_osu_release_stream, get_osu_skin, get_osu_version, get_platform, get_skins_count,
|
|
is_osu_running, open_url_in_browser, presence_connect, presence_disconnect,
|
|
presence_is_connected, presence_update_status, presence_update_user, replace_ui_files, run_osu,
|
|
run_osu_updater, set_osu_config_values, set_osu_user_config_values, valid_osu_folder, has_osuwinello, has_wmctrl,
|
|
has_net8
|
|
};
|
|
|
|
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
|
pub fn run() {
|
|
|
|
#[cfg(target_os = "linux")]
|
|
unsafe {
|
|
std::env::set_var("WEBKIT_DISABLE_DMABUF_RENDERER", "1");
|
|
}
|
|
|
|
let mut builder = tauri::Builder::default();
|
|
#[cfg(desktop)]
|
|
{
|
|
builder = builder.plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| {
|
|
let app_window = app.get_webview_window("main").expect("no main window");
|
|
app_window.set_focus().expect("failed to focus");
|
|
}));
|
|
}
|
|
|
|
let app = builder
|
|
.invoke_handler(tauri::generate_handler![
|
|
get_hwid,
|
|
find_osu_installation,
|
|
valid_osu_folder,
|
|
get_beatmapsets_count,
|
|
get_skins_count,
|
|
get_osu_version,
|
|
get_osu_release_stream,
|
|
set_osu_config_values,
|
|
set_osu_user_config_values,
|
|
run_osu_updater,
|
|
run_osu,
|
|
get_osu_skin,
|
|
get_ezpp_launcher_update_files,
|
|
download_ezpp_launcher_update_files,
|
|
replace_ui_files,
|
|
is_osu_running,
|
|
open_url_in_browser,
|
|
get_launcher_version,
|
|
exit,
|
|
get_platform,
|
|
check_for_corruption,
|
|
presence_connect,
|
|
presence_disconnect,
|
|
presence_update_status,
|
|
presence_update_user,
|
|
presence_is_connected,
|
|
has_osuwinello,
|
|
has_wmctrl,
|
|
has_net8
|
|
])
|
|
.plugin(tauri_plugin_fs::init())
|
|
.plugin(tauri_plugin_dialog::init())
|
|
.plugin(tauri_plugin_shell::init())
|
|
.plugin(tauri_plugin_cors_fetch::init())
|
|
.plugin(tauri_plugin_sql::Builder::default().build())
|
|
.build(tauri::generate_context!())
|
|
.expect("error while building tauri application");
|
|
|
|
app.run(|_app_handle, event| {
|
|
if let tauri::RunEvent::ExitRequested { api, .. } = event {
|
|
api.prevent_exit();
|
|
|
|
tauri::async_runtime::block_on(presence::disconnect());
|
|
std::process::exit(0);
|
|
}
|
|
});
|
|
}
|