Files
esdi/repl/command.go
T

43 lines
755 B
Go

package repl
import (
"fmt"
"os"
)
var (
helpCmd = Command{
Name: ".help",
Usage: " type `.help` for help",
Action: func(r *REPL, args []string) error {
for _, cmd := range r.Commands {
fmt.Printf("%-20s\t%s\n", cmd.Name, cmd.Usage)
}
return nil
},
}
clearCmd = Command{
Name: ".clear",
Usage: " type `.clear` to clear the screen",
Action: func(r *REPL, args []string) error {
_, _ = os.Stdout.Write([]byte("\033[2J\033[H"))
return nil
},
}
exitCmd = Command{
Name: ".exit",
Usage: " type `.exit` to exit this REPL",
Action: func(r *REPL, args []string) error {
r.Stop = true
return nil
},
}
)
type Command struct {
Name string
Usage string
Action func(r *REPL, args []string) error
}