enbas/internal/executor/switch.go

34 lines
717 B
Go

package executor
import (
"fmt"
"codeflow.dananglin.me.uk/apollo/enbas/internal/config"
)
func (s *SwitchExecutor) Execute() error {
funcMap := map[string]func() error{
resourceAccount: s.switchToAccount,
}
doFunc, ok := funcMap[s.to]
if !ok {
return UnsupportedTypeError{resourceType: s.to}
}
return doFunc()
}
func (s *SwitchExecutor) switchToAccount() error {
if s.accountName == "" {
return NoAccountSpecifiedError{}
}
if err := config.UpdateCurrentAccount(s.accountName, s.config.CredentialsFile); err != nil {
return fmt.Errorf("unable to switch account to the account: %w", err)
}
s.printer.PrintSuccess("The current account is now set to '" + s.accountName + "'.")
return nil
}