-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
38 lines (30 loc) · 972 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package main
import (
"log/slog"
"os"
"github.com/metal-stack/metal-console/internal/console"
metalgo "github.com/metal-stack/metal-go"
"github.com/kelseyhightower/envconfig"
"github.com/metal-stack/v"
)
func main() {
spec := &console.Specification{}
jsonHandler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{})
log := slog.New(jsonHandler)
err := envconfig.Process("METAL_CONSOLE", spec)
if err != nil {
log.Error("failed to read env config", "error", err)
panic(err)
}
// FIXME metal-view is enough
client, err := metalgo.NewDriver(spec.MetalAPIURL, "", spec.HMACKey)
if err != nil {
log.Error("failed to create metal client", "error", err)
panic(err)
}
log.Info("metal-console", "version", v.V.String(), "port", spec.Port, "metal-api", spec.MetalAPIURL, "devmode", spec.DevMode())
if err := console.NewServer(log, spec, client).Run(); err != nil {
log.Error("unable to start console server", "error", err)
panic(err)
}
}