generated from PenaSide/GolangTemplate
57 lines
1.5 KiB
Go
57 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"time"
|
|
|
|
"go.uber.org/zap"
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/app"
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/initialize"
|
|
// import for automatically updating linter rules
|
|
_ "gitea.pena/PenaSide/linters-golang/pkg/dummy"
|
|
)
|
|
|
|
var (
|
|
commit string = os.Getenv("COMMIT")
|
|
buildTime string = os.Getenv("BUILD_TIME")
|
|
version string = os.Getenv("VERSION")
|
|
)
|
|
|
|
// $env:COMMIT=$(git rev-parse --short HEAD); $env:BUILD_TIME=$(Get-Date -UFormat "%Y-%m-%dT%H:%M:%SZ"); $env:VERSION=$(git describe --tags); go run cmd/app/main.go
|
|
|
|
func main() {
|
|
logger, err := zap.NewProduction(zap.AddStacktrace(zap.DPanicLevel))
|
|
if err != nil {
|
|
log.Fatalf("failed to init zap logger: %v", err)
|
|
}
|
|
|
|
ptime, err := time.Parse(time.RFC3339, buildTime)
|
|
if err != nil {
|
|
logger.Error("Error parsing build time:", zap.Error(err))
|
|
ptime = time.Now()
|
|
}
|
|
|
|
config, err := initialize.Configuration(".env.test")
|
|
if err != nil {
|
|
logger.Fatal("failed to init config: %v", zap.Error(err))
|
|
}
|
|
|
|
configJSON, err := json.MarshalIndent(config, "", "\t")
|
|
if err != nil {
|
|
logger.Error("failed to translate config struct to json for print inromation: %v", zap.Error(err))
|
|
}
|
|
|
|
fmt.Println("env configuration: \n", string(configJSON))
|
|
|
|
if err := app.Run(config, logger, app.Build{
|
|
Commit: commit,
|
|
Version: version,
|
|
BuildTime: ptime.Unix(),
|
|
}); err != nil {
|
|
logger.Fatal("failed to run app: %v", zap.Error(err))
|
|
}
|
|
}
|