Skip to content

Commit

Permalink
feat: ui, logger and other general improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
mentos1386 committed May 29, 2024
1 parent 4afb709 commit b68c348
Show file tree
Hide file tree
Showing 10 changed files with 143 additions and 132 deletions.
49 changes: 31 additions & 18 deletions cmd/zdravko/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package main

import (
"flag"
"log"
"log/slog"
"os"
"os/signal"
"sync"
Expand All @@ -20,55 +20,67 @@ type StartableAndStoppable interface {
Stop() error
}

func setupLogger() {
opts := &slog.HandlerOptions{
Level: slog.LevelDebug,
}

logger := slog.New(slog.NewTextHandler(os.Stdout, opts))

slog.SetDefault(logger)
}

func main() {
setupLogger()

var startServer bool
var startWorker bool
var startTemporal bool

flag.BoolVar(&startServer, "server", false, "Start the server")
flag.BoolVar(&startWorker, "worker", false, "Start the worker")
flag.BoolVar(&startTemporal, "temporal", false, "Start the temporal")

flag.Parse()

println("Starting zdravko...")
println("Server: ", startServer)
println("Worker: ", startWorker)
println("Temporal: ", startTemporal)
slog.Info("Starting zdravko...", "server", startServer, "worker", startWorker, "temporal", startTemporal)

if !startServer && !startWorker && !startTemporal {
log.Fatal("At least one of the following must be set: --server, --worker, --temporal")
slog.Error("At least one of the following must be set: --server, --worker, --temporal")
os.Exit(1)
}

var servers [3]StartableAndStoppable
var wg sync.WaitGroup

if startTemporal {
log.Println("Setting up Temporal")
slog.Info("Setting up Temporal")
cfg := config.NewTemporalConfig()
temporal, err := temporal.NewTemporal(cfg)
if err != nil {
log.Fatalf("Unable to create temporal: %v", err)
slog.Error("Unable to create temporal", "error", err)
os.Exit(1)
}
servers[0] = temporal
}

if startServer {
log.Println("Setting up Server")
slog.Info("Setting up Server")
cfg := config.NewServerConfig()
server, err := server.NewServer(cfg)
if err != nil {
log.Fatalf("Unable to create server: %v", err)
slog.Error("Unable to create server", "error", err)
os.Exit(1)
}
servers[1] = server
}

if startWorker {
log.Println("Setting up Worker")
slog.Info("Setting up Worker")
cfg := config.NewWorkerConfig()
worker, err := worker.NewWorker(cfg)
if err != nil {
log.Fatalf("Unable to create worker: %v", err)
slog.Error("Unable to create worker", "error", err)
os.Exit(1)
}
servers[2] = worker
}
Expand All @@ -79,13 +91,14 @@ func main() {
continue
}

println("Starting", srv.Name())
slog.Info("Starting", "name", srv.Name())
wg.Add(1)
go func() {
defer wg.Done()
err := srv.Start()
if err != nil {
log.Fatalf("Unable to start %s: %v", srv.Name(), err)
slog.Error("Unable to start", "name", srv.Name(), "error", err)
os.Exit(1)
}
}()
}
Expand All @@ -94,16 +107,16 @@ func main() {
signal.Notify(c, syscall.SIGINT, syscall.SIGTERM)
go func() {
for sig := range c {
log.Printf("Received signal: %v", sig)
slog.Info("Received signal", "signal", sig)
for _, srv := range servers {
if srv == nil {
continue
}

println("Stopping", srv.Name())
slog.Info("Stopping", "name", srv.Name())
err := srv.Stop()
if err != nil {
log.Printf("Unable to stop server %s: %v", srv.Name(), err)
slog.Error("Unable to stop server", "name", srv.Name(), "error", err)
}
}
}
Expand Down
9 changes: 7 additions & 2 deletions pkg/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ func NewServer(cfg *config.ServerConfig) (*Server, error) {
return &Server{
cfg: cfg,
echo: echo.New(),
logger: slog.Default().WithGroup("server"),
logger: slog.Default(),
}, nil
}

Expand All @@ -51,7 +51,12 @@ func (s *Server) Start() error {

s.worker = NewWorker(temporalClient, s.cfg, s.logger, sqliteDb, kvStore)

s.echo.Renderer = templates.NewTemplates()
templates, err := templates.NewTemplates(s.logger)
if err != nil {
return errors.Wrap(err, "failed to create templates")
}
s.echo.Renderer = templates

s.echo.Use(middleware.Logger())
s.echo.Use(middleware.Recover())
s.echo.Use(middleware.Secure())
Expand Down
2 changes: 1 addition & 1 deletion pkg/worker/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ type Worker struct {
func NewWorker(cfg *config.WorkerConfig) (*Worker, error) {
return &Worker{
cfg: cfg,
logger: slog.Default().WithGroup("worker"),
logger: slog.Default(),
}, nil
}

Expand Down
12 changes: 6 additions & 6 deletions web/static/css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -82,18 +82,18 @@ code {
background: repeating-linear-gradient(
0deg,
var(--color-orange-300),
var(--color-orange-300) 10%,
var(--color-orange-400) 10%,
var(--color-orange-400) 20%
var(--color-orange-300) 33%,
var(--color-orange-400) 33%,
var(--color-orange-400) 66%
);
}
#page-index .history.degraded:hover > .bar {
background: repeating-linear-gradient(
0deg,
var(--color-orange-400),
var(--color-orange-400) 10%,
var(--color-orange-500) 10%,
var(--color-orange-500) 20%
var(--color-orange-400) 33%,
var(--color-orange-500) 33%,
var(--color-orange-500) 66%
);
}

Expand Down
35 changes: 18 additions & 17 deletions web/static/css/tailwind.css
Original file line number Diff line number Diff line change
Expand Up @@ -1020,10 +1020,6 @@ video {
height: min-content;
}

.w-12 {
width: 3rem;
}

.w-20 {
width: 5rem;
}
Expand Down Expand Up @@ -1386,16 +1382,16 @@ video {
line-height: 1.5rem;
}

.text-lg {
font-size: 1.125rem;
line-height: 1.75rem;
}

.text-sm {
font-size: 0.875rem;
line-height: 1.25rem;
}

.text-xl {
font-size: 1.25rem;
line-height: 1.75rem;
}

.text-xs {
font-size: 0.75rem;
line-height: 1rem;
Expand Down Expand Up @@ -1514,6 +1510,11 @@ video {
color: rgb(107 33 168 / var(--tw-text-opacity));
}

.text-red-500 {
--tw-text-opacity: 1;
color: rgb(239 68 68 / var(--tw-text-opacity));
}

.text-red-600 {
--tw-text-opacity: 1;
color: rgb(220 38 38 / var(--tw-text-opacity));
Expand Down Expand Up @@ -1743,19 +1744,19 @@ code {
background: repeating-linear-gradient(
0deg,
var(--color-orange-300),
var(--color-orange-300) 10%,
var(--color-orange-400) 10%,
var(--color-orange-400) 20%
var(--color-orange-300) 33%,
var(--color-orange-400) 33%,
var(--color-orange-400) 66%
);
}

#page-index .history.degraded:hover > .bar {
background: repeating-linear-gradient(
0deg,
var(--color-orange-400),
var(--color-orange-400) 10%,
var(--color-orange-500) 10%,
var(--color-orange-500) 20%
var(--color-orange-400) 33%,
var(--color-orange-500) 33%,
var(--color-orange-500) 66%
);
}

Expand Down Expand Up @@ -2133,8 +2134,8 @@ code {
justify-content: center;
}

.sm\:justify-evenly {
justify-content: space-evenly;
.sm\:justify-between {
justify-content: space-between;
}

.sm\:px-8 {
Expand Down
27 changes: 19 additions & 8 deletions web/templates/components/base.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,12 @@
<link rel="stylesheet" href="/static/css/tailwind.css" />
</head>
<body class="bg-gray-100 flex flex-col">
<header class="flex flex-col sm:flex-row items-center sm:justify-evenly p-4 gap-2">
<a href="/" class="text-2xl font-bold">zdravko.mnts.dev</a>
<header
class="container max-w-screen-md flex flex-col sm:flex-row items-center sm:justify-between p-4 gap-2"
>
<a href="/" class="hover:underline text-2xl font-bold"
>zdravko.mnts.dev</a
>
<nav class="navbar flex sm:flex-row flex-col flex-wrap space-x-2 gap-1">
{{ range .Navbar }}
<a
Expand All @@ -31,21 +35,28 @@
</a>
{{ end }}
</nav>
<img
src="https://avatars.githubusercontent.com/u/1910649?v=4"
alt="Profile Image"
class="rounded-full w-12 h-12"
></img>
</header>
{{ template "main" . }}
<div class="container mx-auto">
<footer class="text-center text-gray-600 text-xs mt-8 mb-4">
&copy; {{ Now.UTC.Year }} Zdravko -
Powered by
<a class="hover:underline" href="https://zdravko.mnts.dev">Zdravko</a>
-
<a
class="hover:underline"
href="https://github.com/mentos1386/zdravko"
>Open Source</a
>
- Made with <span class="text-red-500">❤</span> by
<a class="hover:underline" href="https://mnts.dev/about"
>Mentos1386</a
>
and
<a
class="hover:underline"
href="https://github.com/mentos1386/zdravko/graphs/contributors"
>others</a
>.
</footer>
</div>
<script src="/static/js/htmx.min.js"></script>
Expand Down
Empty file.
Empty file.
Loading

0 comments on commit b68c348

Please sign in to comment.