mirror of https://github.com/liamg/aminal.git
60 lines
1.1 KiB
Go
60 lines
1.1 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 terminal.Read()
|
|
|
|
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
|
|
}
|