Skip to content

Commit

Permalink
prepare for future tauri version
Browse files Browse the repository at this point in the history
  • Loading branch information
mariotaku committed Nov 20, 2023
1 parent 79b3fcb commit ea5a5ac
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 71 deletions.
4 changes: 2 additions & 2 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ description = "Device Manager for LG webOS"
authors = ["Ningyuan Li"]
license = "Apache-2.0"
repository = "https://github.com/webosbrew/dev-manager-desktop"
default-run = "app"
edition = "2021"
rust-version = "1.68.2"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[lib]
name = "app_lib"
crate-type = ["staticlib", "cdylib", "rlib"]

[build-dependencies]
tauri-build = { version = "1.5.0", features = [] }

Expand Down
69 changes: 69 additions & 0 deletions src-tauri/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
extern crate core;

use log::LevelFilter;
use tauri::Manager;

use native_dialog::{MessageDialog, MessageType};

use crate::device_manager::DeviceManager;
use crate::session_manager::SessionManager;
use crate::shell_manager::ShellManager;
use crate::spawn_manager::SpawnManager;

mod conn_pool;
mod device_manager;
mod error;
mod event_channel;
mod plugins;
mod remote_files;
mod session_manager;
mod shell_manager;
mod spawn_manager;


//#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
env_logger::builder().filter_level(LevelFilter::Debug).init();
let result = tauri::Builder::default()
.plugin(tauri_plugin_single_instance::init(|app, _argv, _cwd| {
if let Some(wnd) = app.get_window("main") {
wnd.unminimize().unwrap_or(());
wnd.set_focus().unwrap_or(());
}
}))
.plugin(plugins::device::plugin("device-manager"))
.plugin(plugins::cmd::plugin("remote-command"))
.plugin(plugins::shell::plugin("remote-shell"))
.plugin(plugins::file::plugin("remote-file"))
.plugin(plugins::devmode::plugin("dev-mode"))
.plugin(plugins::local_file::plugin("local-file"))
.manage(DeviceManager::default())
.manage(SessionManager::default())
.manage(SpawnManager::default())
.manage(ShellManager::default())
.on_page_load(|wnd, _payload| {
let spawns = wnd.state::<SpawnManager>();
spawns.clear();
})
.run(tauri::generate_context!());
if let Err(e) = result {
#[cfg(windows)]
if let tauri::Error::Runtime(ref e) = e {
if format!("{:?}", e).starts_with("CreateWebview(") {
MessageDialog::new()
.set_type(MessageType::Error)
.set_title("webOS Dev Manager")
.set_text(&format!("Unexpected error occurred: {:?}\nThis may be due to broken installation of WebView2 Runtime. You may need to reinstall WebView2 Runtime as administrator.", e))
.show_alert()
.expect("Unexpected error occurred while processing unexpected error :(");
return;
}
}
MessageDialog::new()
.set_type(MessageType::Error)
.set_title("webOS Dev Manager")
.set_text(&format!("Unexpected error occurred: {:?}", e))
.show_alert()
.expect("Unexpected error occurred while processing unexpected error :(");
}
}
71 changes: 3 additions & 68 deletions src-tauri/src/main.rs
Original file line number Diff line number Diff line change
@@ -1,72 +1,7 @@
#![cfg_attr(
all(not(debug_assertions), target_os = "windows"),
windows_subsystem = "windows"
all(not(debug_assertions), target_os = "windows"),
windows_subsystem = "windows"
)]

extern crate core;

use log::LevelFilter;
use tauri::Manager;

use native_dialog::{MessageDialog, MessageType};

use crate::device_manager::DeviceManager;
use crate::session_manager::SessionManager;
use crate::shell_manager::ShellManager;
use crate::spawn_manager::SpawnManager;

mod conn_pool;
mod device_manager;
mod error;
mod event_channel;
mod plugins;
mod remote_files;
mod session_manager;
mod shell_manager;
mod spawn_manager;

fn main() {
env_logger::builder().filter_level(LevelFilter::Debug).init();
let result = tauri::Builder::default()
.plugin(tauri_plugin_single_instance::init(|app, _argv, _cwd| {
if let Some(wnd) = app.get_window("main") {
wnd.unminimize().unwrap_or(());
wnd.set_focus().unwrap_or(());
}
}))
.plugin(plugins::device::plugin("device-manager"))
.plugin(plugins::cmd::plugin("remote-command"))
.plugin(plugins::shell::plugin("remote-shell"))
.plugin(plugins::file::plugin("remote-file"))
.plugin(plugins::devmode::plugin("dev-mode"))
.plugin(plugins::local_file::plugin("local-file"))
.manage(DeviceManager::default())
.manage(SessionManager::default())
.manage(SpawnManager::default())
.manage(ShellManager::default())
.on_page_load(|wnd, _payload| {
let spawns = wnd.state::<SpawnManager>();
spawns.clear();
})
.run(tauri::generate_context!());
if let Err(e) = result {
#[cfg(windows)]
if let tauri::Error::Runtime(ref e) = e {
if format!("{:?}", e).starts_with("CreateWebview(") {
MessageDialog::new()
.set_type(MessageType::Error)
.set_title("webOS Dev Manager")
.set_text(&format!("Unexpected error occurred: {:?}\nThis may be due to broken installation of WebView2 Runtime. You may need to reinstall WebView2 Runtime as administrator.", e))
.show_alert()
.expect("Unexpected error occurred while processing unexpected error :(");
return;
}
}
MessageDialog::new()
.set_type(MessageType::Error)
.set_title("webOS Dev Manager")
.set_text(&format!("Unexpected error occurred: {:?}", e))
.show_alert()
.expect("Unexpected error occurred while processing unexpected error :(");
}
app_lib::run();
}

0 comments on commit ea5a5ac

Please sign in to comment.