mirror of
https://github.com/yuzu-emu/liftinstall.git
synced 2025-11-05 09:34:51 +00:00
* platform: fix build on Linux and update web-view * deps: replace xz-decom with xz2 and update deps * platform: fix regression... ... that prevents the build on Windows * linux: implement platform-dependent functions * travis: add macos and windows CI * travis: use official Rust Docker image * Update Cargo.lock for new version * Break apart REST into separate services This cleans up locking, ensures consistent futures for all endpoints and enhances code re-use. * Clean up codebase, fixing minor errors * Update packages, use async client for downloading config While this has a hell of a lot more boilerplate, this is quite a bit cleaner. * Add explicit 'dyn's as per Rust nightly requirements * Migrate self updating functions to own module * Migrate assets to server module * Use patched web-view to fix dialogs, remove nfd * Implement basic dark mode * Revert window.close usage * ui: split files and use Webpack * frontend: ui: include prebuilt assets... ... and update rust side stuff * build: integrate webpack building into build.rs * Polish Vue UI split * Add instructions for node + yarn * native: fix uninstall self-destruction behavior...... by not showing the command prompt window and fork-spawning the cmd * native: deal with Unicode issues in native APIs * native: further improve Unicode support on Windows * travis: add cache and fix issues * ui: use Buefy components to... ... beautify the UI * ui: makes error message selectable * Make launcher mode behaviour more robust * Fix error display on launcher pages * Correctly handle exit on error * Bump installer version
30 lines
830 B
Rust
30 lines
830 B
Rust
//! frontend/mod.rs
|
|
//!
|
|
//! Provides the frontend interface, including HTTP server.
|
|
|
|
use std::sync::{Arc, RwLock};
|
|
|
|
use installer::InstallerFramework;
|
|
use logging::LoggingErrors;
|
|
|
|
pub mod rest;
|
|
mod ui;
|
|
|
|
/// Launches the main web server + UI. Returns when the framework has been consumed + web UI closed.
|
|
pub fn launch(app_name: &str, is_launcher: bool, framework: InstallerFramework) {
|
|
let framework = Arc::new(RwLock::new(framework));
|
|
|
|
let (servers, address) = rest::server::spawn_servers(framework.clone());
|
|
|
|
ui::start_ui(app_name, &address, is_launcher);
|
|
|
|
// Explicitly hint that we want the servers instance until here.
|
|
drop(servers);
|
|
|
|
framework
|
|
.write()
|
|
.log_expect("Failed to write to framework to finalize")
|
|
.shutdown()
|
|
.log_expect("Failed to finalize framework");
|
|
}
|