diff --git a/README.md b/README.md index 87fac41..2f01b31 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,12 @@ bun run tauri dev bun run tauri build ``` +Once a profile is set up, it is possible to bypass the GUI: + +```sh +startliner --start --game ongeki --name profile-name +``` + ### Package format - [Package format requirements](https://rainy.patafour.zip/package/create/docs/) @@ -45,20 +51,19 @@ Arbitrary scripts are not supported by design and that will probably never chang ### Architecture details -- Downloaded packages are stored in `%APPDATA%\7EVENDAYSHOLIDAYS\STARTLINER\data\pkg` (on Linux it's `~/.local/share/startliner` by default). -- Each profile is associated with a prefix directory `%APPDATA\7EVENDAYSHOLIDAYS\STARTLINER\data\profile-x` which includes the following: +- Downloaded packages are stored in `%LOCALAPPDATA%\STARTLINER\data\pkg` (or `$XDG_DATA_HOME/startliner/pkg`). +- Each profile is associated with a prefix directory `%LOCALAPPDATA%\STARTLINER\data\profile-x` which includes: - `option` with junctions of vanilla opts as well as Rainycolor package opts - `BepInEx` with Rainycolor mods copied over - It's currently pointless to symlink those since they are measured in kilobytes - `segatools.ini` generated on-the-fly and pointing at `option` - It's currently based on the existing `segatools.ini` but that will change in the future - - `aime.txt` (if enabled) + - logs +- Persistent configuration is stored in `%APPDATA%\STARTLINER` (or `$XDG_CONFIG_HOME/startliner`). ### Todo - Auto-updates -- Running from CLI -- Multiple profiles - CHUNITHM support - segatools as a special package - Progress bars and other GUI sugar diff --git a/rust/src/cmd.rs b/rust/src/cmd.rs index f843428..d9285b9 100644 --- a/rust/src/cmd.rs +++ b/rust/src/cmd.rs @@ -23,6 +23,7 @@ pub async fn startline(app: AppHandle) -> Result<(), String> { hash = appd.sum_packages(p); } if let Some(p) = &mut appd.profile { + log::debug!("{}", hash); p.line_up(app.clone(), hash).await .map_err(|e| format!("Lineup failed:\n{}", e))?; p.start(app.clone()).await diff --git a/rust/src/lib.rs b/rust/src/lib.rs index fb073e4..ae4ce97 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -127,10 +127,12 @@ pub async fn run(_args: Vec) { let apph = apph.clone(); tauri::async_runtime::spawn(async move { let mtx = apph.state::>(); - let mut appd = mtx.lock().await; - if let Err(e) = appd.pkgs.reload_all().await { - log::error!("Unable to reload packages: {}", e); - apph.exit(1); + { + let mut appd = mtx.lock().await; + if let Err(e) = appd.pkgs.reload_all().await { + log::error!("Unable to reload packages: {}", e); + apph.exit(1); + } } if let Err(e) = cmd::startline(apph.clone()).await { log::error!("Unable to launch: {}", e);