aminal/main.go

58 lines
1.0 KiB
Go

package main
import (
"fmt"
"os"
"time"
"gitlab.com/liamg/raft/config"
"gitlab.com/liamg/raft/gui"
"gitlab.com/liamg/raft/pty"
"gitlab.com/liamg/raft/terminal"
"go.uber.org/zap"
)
func main() {
// parse this
conf := config.Config{DebugMode: true}
var logger *zap.Logger
var err error
if conf.DebugMode {
logger, err = zap.NewDevelopment()
} else {
logger, err = zap.NewProduction()
}
if err != nil {
fmt.Printf("Failed to create logger: %s", err)
os.Exit(1)
}
sugaredLogger := logger.Sugar()
defer sugaredLogger.Sync()
sugaredLogger.Infof("Allocationg pty...")
pty, err := pty.NewPtyWithShell()
if err != nil {
panic(err)
}
sugaredLogger.Infof("Creating terminal...")
terminal := terminal.New(pty, sugaredLogger)
go func() {
time.Sleep(time.Second * 5)
terminal.Write([]byte("tput cols && tput lines\n"))
}()
g := gui.New(conf, terminal, sugaredLogger)
if err := g.Render(); err != nil {
sugaredLogger.Fatalf("Render error: %s", err)
}
//go io.Copy(pty, os.Stdin)
//io.Copy(os.Stdout, pty)
// return pty, err
}