forked from akanyan/STARTLINER
fix: CLI deadlock
This commit is contained in:
15
README.md
15
README.md
@ -15,6 +15,12 @@ bun run tauri dev
|
|||||||
bun run tauri build
|
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
|
||||||
|
|
||||||
- [Package format requirements](https://rainy.patafour.zip/package/create/docs/)
|
- [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
|
### Architecture details
|
||||||
|
|
||||||
- Downloaded packages are stored in `%APPDATA%\7EVENDAYSHOLIDAYS\STARTLINER\data\pkg` (on Linux it's `~/.local/share/startliner` by default).
|
- Downloaded packages are stored in `%LOCALAPPDATA%\STARTLINER\data\pkg` (or `$XDG_DATA_HOME/startliner/pkg`).
|
||||||
- Each profile is associated with a prefix directory `%APPDATA\7EVENDAYSHOLIDAYS\STARTLINER\data\profile-x` which includes the following:
|
- 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
|
- `option` with junctions of vanilla opts as well as Rainycolor package opts
|
||||||
- `BepInEx` with Rainycolor mods copied over
|
- `BepInEx` with Rainycolor mods copied over
|
||||||
- It's currently pointless to symlink those since they are measured in kilobytes
|
- It's currently pointless to symlink those since they are measured in kilobytes
|
||||||
- `segatools.ini` generated on-the-fly and pointing at `option`
|
- `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
|
- 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
|
### Todo
|
||||||
|
|
||||||
- Auto-updates
|
- Auto-updates
|
||||||
- Running from CLI
|
|
||||||
- Multiple profiles
|
|
||||||
- CHUNITHM support
|
- CHUNITHM support
|
||||||
- segatools as a special package
|
- segatools as a special package
|
||||||
- Progress bars and other GUI sugar
|
- Progress bars and other GUI sugar
|
||||||
|
@ -23,6 +23,7 @@ pub async fn startline(app: AppHandle) -> Result<(), String> {
|
|||||||
hash = appd.sum_packages(p);
|
hash = appd.sum_packages(p);
|
||||||
}
|
}
|
||||||
if let Some(p) = &mut appd.profile {
|
if let Some(p) = &mut appd.profile {
|
||||||
|
log::debug!("{}", hash);
|
||||||
p.line_up(app.clone(), hash).await
|
p.line_up(app.clone(), hash).await
|
||||||
.map_err(|e| format!("Lineup failed:\n{}", e))?;
|
.map_err(|e| format!("Lineup failed:\n{}", e))?;
|
||||||
p.start(app.clone()).await
|
p.start(app.clone()).await
|
||||||
|
@ -127,10 +127,12 @@ pub async fn run(_args: Vec<String>) {
|
|||||||
let apph = apph.clone();
|
let apph = apph.clone();
|
||||||
tauri::async_runtime::spawn(async move {
|
tauri::async_runtime::spawn(async move {
|
||||||
let mtx = apph.state::<Mutex<AppData>>();
|
let mtx = apph.state::<Mutex<AppData>>();
|
||||||
let mut appd = mtx.lock().await;
|
{
|
||||||
if let Err(e) = appd.pkgs.reload_all().await {
|
let mut appd = mtx.lock().await;
|
||||||
log::error!("Unable to reload packages: {}", e);
|
if let Err(e) = appd.pkgs.reload_all().await {
|
||||||
apph.exit(1);
|
log::error!("Unable to reload packages: {}", e);
|
||||||
|
apph.exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if let Err(e) = cmd::startline(apph.clone()).await {
|
if let Err(e) = cmd::startline(apph.clone()).await {
|
||||||
log::error!("Unable to launch: {}", e);
|
log::error!("Unable to launch: {}", e);
|
||||||
|
Reference in New Issue
Block a user