diff --git a/internal/cli/shell.go b/internal/cli/shell.go index a513e05..d121045 100644 --- a/internal/cli/shell.go +++ b/internal/cli/shell.go @@ -126,21 +126,34 @@ func interpretCommand(command string, store musicObjectStore) (musicObjectStore, return append(store, currentMusicObjects), nil } -func Shell() { +func Shell(commandsList ...[]string) { plugin.RegisterPlugin(&plugin.Musify{}) + commands := []string{} + if len(commandsList) > 0 { + commands = commandsList[0] + } + fmt.Println("== MusicKraken Shell ==") fmt.Println() store := musicObjectStore{} + var err error = nil for { - fmt.Print("> ") + var command string - reader := bufio.NewReader(os.Stdin) - command, err := reader.ReadString('\n') - if err != nil { - log.Fatal(err) + if len(commands) <= 0 { + fmt.Print("> ") + + reader := bufio.NewReader(os.Stdin) + command, err = reader.ReadString('\n') + if err != nil { + log.Fatal(err) + } + } else { + command = commands[0] + commands = commands[1:] } store, err = interpretCommand(strings.TrimSpace(command), store)