mirror of
https://github.com/mainnika/nikita-tokarch-uk.git
synced 2026-05-25 01:03:35 +00:00
Restructure the go package
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"time"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/viper"
|
||||
"github.com/valyala/fasthttp"
|
||||
|
||||
"code.tokarch.uk/mainnika/nikita-tokarch-uk/pkg/config"
|
||||
"code.tokarch.uk/mainnika/nikita-tokarch-uk/pkg/ghost/v4api/httpclient"
|
||||
"code.tokarch.uk/mainnika/nikita-tokarch-uk/pkg/routes"
|
||||
_ "code.tokarch.uk/mainnika/nikita-tokarch-uk/pkg/templates"
|
||||
)
|
||||
|
||||
var Version = "nightly"
|
||||
|
||||
const frontendServerIdentity = "Microsoft-IIS/6.0"
|
||||
|
||||
func main() {
|
||||
|
||||
if viper.GetBool("version") {
|
||||
fmt.Print(Version)
|
||||
return
|
||||
}
|
||||
|
||||
viper.SetConfigFile(viper.GetString("config"))
|
||||
if err := viper.ReadInConfig(); err != nil {
|
||||
logrus.Debugf("Skip invalid config file %s, %v", viper.ConfigFileUsed(), err)
|
||||
}
|
||||
|
||||
config := &config.Config{}
|
||||
if err := viper.Unmarshal(config); err != nil {
|
||||
logrus.Warnf("Cannot unmarshal config, %v", err)
|
||||
}
|
||||
|
||||
var netw, addr string
|
||||
switch {
|
||||
case config.Addr != "":
|
||||
netw = "tcp"
|
||||
addr = config.Addr
|
||||
case config.Unix != "":
|
||||
netw = "unix"
|
||||
addr = config.Unix
|
||||
default:
|
||||
panic("no address given")
|
||||
}
|
||||
netListener, err := net.Listen(netw, addr)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
|
||||
ghostClient := &httpclient.HTTPClient{
|
||||
Addr: config.Content.Backend.Addr,
|
||||
Secured: config.Content.Backend.Secured,
|
||||
Headers: config.Content.Backend.Headers,
|
||||
ContentKey: config.Content.Key,
|
||||
QueryTimeout: time.Second,
|
||||
}
|
||||
|
||||
apiRoutes := &routes.Routes{
|
||||
GhostClient: ghostClient,
|
||||
ContentConfig: config.Content,
|
||||
Base: config.Base,
|
||||
}
|
||||
|
||||
httpServer := fasthttp.Server{
|
||||
Logger: logrus.StandardLogger(),
|
||||
Handler: apiRoutes.Handler,
|
||||
Name: frontendServerIdentity,
|
||||
GetOnly: true,
|
||||
}
|
||||
|
||||
logrus.Infof("Version: %s", Version)
|
||||
logrus.Debugf("Addr: %s+%s", netw, addr)
|
||||
logrus.Debugf("Conf: %#v", config)
|
||||
|
||||
err = httpServer.Serve(netListener)
|
||||
if err != nil {
|
||||
logrus.Fatal(err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user