Add profile-aware plugin TUI
This commit is contained in:
@@ -26,10 +26,17 @@ multiple explicit roots, separate them with `:`.
|
||||
The helper is intended to manage both the local Linux BSManager install and the
|
||||
mounted Windows install. Lockfiles and registry entries are shared by Beat Saber
|
||||
version, but install state is target-specific. When the same instance name
|
||||
exists under both roots, such as `1.44.1`, use an explicit `--instances-root`
|
||||
and a separate state directory for each target.
|
||||
exists under both roots, such as `1.44.1`, give each install profile its own
|
||||
state directory.
|
||||
|
||||
Suggested repo-local convention:
|
||||
Copy the example profile config and adjust paths if needed:
|
||||
|
||||
```sh
|
||||
cp plugin-helper.toml.example plugin-helper.local.toml
|
||||
```
|
||||
|
||||
`plugin-helper.local.toml` is ignored by git. The default example uses this
|
||||
repo-local convention:
|
||||
|
||||
```text
|
||||
.state/ local Linux BSManager state
|
||||
@@ -40,35 +47,38 @@ Examples:
|
||||
|
||||
```sh
|
||||
PYTHONPATH=src python -m plugin_helper \
|
||||
--instances-root /home/pleb/.local/share/BSManager/BSInstances \
|
||||
--state-dir .state \
|
||||
--profile linux \
|
||||
installed --instance 1.44.1
|
||||
|
||||
PYTHONPATH=src python -m plugin_helper \
|
||||
--instances-root /home/pleb/Windows/Users/pleb/BSManager/BSInstances \
|
||||
--state-dir .state-windows \
|
||||
--profile windows \
|
||||
installed --instance 1.44.1
|
||||
```
|
||||
|
||||
Do not reuse the same state directory for both targets when their instance names
|
||||
match. The current state layout is keyed by instance name, so sharing one state
|
||||
directory would mix bootstrap records, generated plans, backups, and installed
|
||||
file records for different game trees.
|
||||
Explicit `--instances-root` and `--state-dir` still work and override profile
|
||||
values. Do not reuse the same state directory for both targets when their
|
||||
instance names match. The current state layout is keyed by instance name, so
|
||||
sharing one state directory would mix bootstrap records, generated plans,
|
||||
backups, and installed file records for different game trees.
|
||||
|
||||
## Commands
|
||||
|
||||
For normal use, run the menu from the repo root. Use repo-local state so the
|
||||
menu sees the same plans, downloads, and install records used by the helper
|
||||
workflow:
|
||||
For normal use, run the Textual menu from the repo root:
|
||||
|
||||
```sh
|
||||
PYTHONPATH=src python -m plugin_helper --state-dir .state menu
|
||||
PYTHONPATH=src python -m plugin_helper menu
|
||||
```
|
||||
|
||||
The menu reads `plugin-helper.local.toml` when present, shows each discovered
|
||||
Beat Saber install with its resolved state directory, and lets you toggle
|
||||
managed plugins with arrow keys and Space. In the plugin table, use `d` to
|
||||
disable all currently enabled managed plugins and `e` to enable all currently
|
||||
disabled managed plugins.
|
||||
|
||||
The individual subcommands are mostly for automation and debugging. If you use
|
||||
them, pass `--state-dir .state` unless you intentionally want the default live
|
||||
state outside this repo or are intentionally targeting the Windows install with
|
||||
`.state-windows`.
|
||||
them, prefer `--profile linux` or `--profile windows`. Pass `--state-dir`
|
||||
directly only when you intentionally want to override profile state or use the
|
||||
default live state outside this repo.
|
||||
|
||||
Install assets are currently expected to already exist locally, usually under:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user