service auth, edit and delete now all support --service flag

If a service name is given, this will be used. If not the user is
prompted to select one.
This commit is contained in:
Philipp Wolfer 2023-12-09 22:59:33 +01:00
parent c21715d36b
commit 9449a29fb1
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
9 changed files with 29 additions and 51 deletions

View file

@ -63,12 +63,8 @@ func (l BackendList) Swap(i, j int) {
type Capability = string
func ResolveBackend[T interface{}](config *config.ServiceConfig) (T, error) {
func ResolveBackend[T interface{}](config config.ServiceConfig) (T, error) {
var result T
if config == nil {
err := fmt.Errorf("config must not be nil")
return result, err
}
backend, err := backendWithConfig(config)
if err != nil {
return result, err
@ -120,12 +116,12 @@ var knownBackends = map[string]func() models.Backend{
"subsonic": func() models.Backend { return &subsonic.SubsonicApiBackend{} },
}
func backendWithConfig(config *config.ServiceConfig) (models.Backend, error) {
func backendWithConfig(config config.ServiceConfig) (models.Backend, error) {
backend, err := BackendByName(config.Backend)
if err != nil {
return nil, err
}
return backend.FromConfig(config), nil
return backend.FromConfig(&config), nil
}
func ImplementsInterface[T interface{}](backend *models.Backend) (bool, string) {