Add Tauri launcher with Svelte UI
- Accounts: panel login/sign-up, Microsoft device-code sign-in, offline play; tokens encrypted with a key kept in the OS credential store - Home: instance rail, live server status, news feed, social links, Play button with download progress, speed and ETA - Full settings: accounts, memory/resolution/after-launch behaviour, Java and GC presets, Minecraft keybind editor applied to options.txt, theme overrides, storage manager, self-update via GitHub releases - Game console, crash dialog with hints, per-instance overrides - Live admin branding (colours, fonts, backgrounds, custom CSS) - Online install tests for vanilla/Fabric/Quilt/Forge/NeoForge (CI) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011ARcGWxLx21FwXJ3yfGriS
This commit is contained in:
60 files changed
+9424
-47
No files matched your search
@@ -268,7 +268,10 @@ fn write_argfile(path: &Path, args: &[String]) -> Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn spawn(cmd: &Command, java_major: u32) -> Result<tokio::process::Child> {
|
||||
/// Start the game. With `capture` the game's stdout/stderr are piped back to
|
||||
/// us (for the console); without it they're discarded, which is required
|
||||
/// when the launcher exits while the game keeps running.
|
||||
pub fn spawn(cmd: &Command, java_major: u32, capture: bool) -> Result<tokio::process::Child> {
|
||||
std::fs::create_dir_all(&cmd.cwd)?;
|
||||
let mut proc = tokio::process::Command::new(&cmd.java);
|
||||
let total_len: usize = cmd.args.iter().map(|a| a.len() + 3).sum();
|
||||
@@ -280,10 +283,8 @@ pub fn spawn(cmd: &Command, java_major: u32) -> Result<tokio::process::Child> {
|
||||
} else {
|
||||
proc.args(&cmd.args);
|
||||
}
|
||||
proc.current_dir(&cmd.cwd)
|
||||
.stdin(std::process::Stdio::null())
|
||||
.stdout(std::process::Stdio::piped())
|
||||
.stderr(std::process::Stdio::piped());
|
||||
let out = || if capture { std::process::Stdio::piped() } else { std::process::Stdio::null() };
|
||||
proc.current_dir(&cmd.cwd).stdin(std::process::Stdio::null()).stdout(out()).stderr(out());
|
||||
#[cfg(windows)]
|
||||
proc.creation_flags(0x0800_0000);
|
||||
proc.spawn().with_context(|| format!("starting {}", cmd.java.display()))
|
||||
|
||||
Reference in new issue
Block a user