Skip to content

CLI slice 1: settings, game version, index refresh, instances #66

Description

@Maximilian-Nesslauer

Part of #65, and the first pull request against #64.

Commands

Everything here has a Core operation on main or in an open pull request.

Command Operation
borea settings show IBoreaSettingsRepository.GetAsync
borea settings set game <dir> IBoreaSettingsRepository.SaveAsync
borea settings set loader <id> <dir> the loader map from #58
borea game version the installed build from #57, and the master server's build from LatestVersionPing
borea index refresh IContentIndexFetcher.FetchAsync from #60, reporting downloaded or not modified
borea instance list IInstanceRepository.GetAllAsync, marking the active one
borea instance create <name> CreateAsync with InstanceSource.Custom
borea instance rename, delete, activate RenameAsync, DeleteAsync, SetActiveInstanceAsync
borea instance mods <instance> the manifest entries in load order, GetEntriesAsync from #62
borea enable <id> --instance <name>, borea disable IModStateRepository.SetActiveAsync and SetInactiveAsync

settings set comes first, because without it nothing can point the CLI at a game.

An instance is named on the command line by its display name, and by id when two names differ only in case.

Tests

One test per command, plus: no settings file, an instance name that is taken, an unknown instance, a disabled mod that stays disabled through enable of another mod.

Not in scope

Anything from the index beyond fetching it, and anything that writes a mod folder.

Depends on

#64, #57, #58, #60, #62.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:infraCI, build, releasearea:networkBorea.Network, SpaceDock and other sourcesarea:storageBorea.Storage, persistence and TOML

Type

Projects

  • Status
    In review

Relationships

None yet

Development

No branches or pull requests

Issue actions