Private
Public Access
1
0

Prompt: adds interactive prompt (that does nothing right now)

This commit is contained in:
James Magahern
2023-06-22 12:03:37 -07:00
parent 27de41ddb2
commit a4c25df183
4 changed files with 96 additions and 4 deletions

28
main.go
View File

@@ -9,9 +9,18 @@ import (
"github.com/rs/zerolog/log"
"code.severnaya.net/kordophone-mock/v2/web"
"code.severnaya.net/kordophone-mock/v2/prompt"
)
func main() {
type LoggingHook struct{
prompt *prompt.Prompt
}
func (t *LoggingHook) Run(e *zerolog.Event, level zerolog.Level, message string) {
t.prompt.CleanAndRefreshForLogging()
}
func setupLogging() {
debug := flag.Bool("debug", false, "enable debug logging")
flag.Parse()
@@ -23,8 +32,10 @@ func main() {
if *debug {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
}
}
log.Info().Msg("Initializing")
func main() {
setupLogging()
c := web.MockHTTPServerConfiguration{
AuthEnabled: false,
@@ -42,5 +53,16 @@ func main() {
log.Info().Msgf("Generated test data. %d conversations", len(s.Server.Conversations()))
log.Info().Msgf("Listening on %s", addr)
log.Fatal().Err(httpServer.ListenAndServe())
go httpServer.ListenAndServe()
rl := prompt.NewPrompt()
// Hook logging so we can refresh the prompt when something is logged.
log.Logger = log.Logger.Hook(&LoggingHook{prompt: rl})
// Read indefinitely
err := rl.StartInteractive()
if err != nil {
log.Error().Err(err)
}
}