Passed
Pull Request — main (#166)
by Yume
02:10
created

main.main   B

Complexity

Conditions 5

Size

Total Lines 35
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 5
eloc 20
nop 0
dl 0
loc 35
rs 8.9332
c 0
b 0
f 0
1
package main
2
3
import (
4
	"log"
5
	"log/slog"
6
	"os"
7
	"os/signal"
8
	"syscall"
9
10
	v2 "github.com/memnix/memnix-rest/app/v2"
11
	"github.com/memnix/memnix-rest/cmd/v2/config"
12
	"github.com/memnix/memnix-rest/pkg/logger"
13
)
14
15
func main() {
16
	configPath := config.GetConfigPath()
17
18
	cfg, err := config.LoadConfig(configPath)
19
	if err != nil {
20
		log.Fatalf("❌ Error loading config: %s", err.Error())
21
	}
22
23
	logger.NewLogger().SetLogLevel(slog.LevelInfo)
24
25
	e := v2.GetEchoInstance()
26
27
	setup(cfg)
28
29
	slog.Info("starting server 🚀", slog.String("version", cfg.Server.AppVersion))
30
31
	go func() {
32
		if err = e.Start(":3000"); err != nil {
33
			slog.Error("error starting server", slog.Any("error", err))
34
			os.Exit(1)
35
		}
36
	}()
37
38
	c := make(chan os.Signal, 1)
39
	signal.Notify(c, os.Interrupt, syscall.SIGTERM)
40
41
	<-c
42
43
	slog.Info("shutting down server")
44
45
	if err = shutdown(); err != nil {
46
		slog.Error("error shutting down server", slog.Any("error", err))
47
	}
48
49
	slog.Info("server stopped")
50
}
51