Files
Havline/cmd/havline-updater/main.go
T

45 lines
1.3 KiB
Go
Raw Normal View History

2026-10-01 16:54:35 +08:00
package main
import (
"context"
"log"
"os"
"os/signal"
"syscall"
"github.com/havline/havline/internal/updater"
)
func main() {
server, err := updater.NewServer(updater.Config{
SocketPath: envOr("HAVLINE_UPDATER_SOCKET", "/run/havline-updater/updater.sock"),
ProjectDir: envOr("HAVLINE_UPDATE_PROJECT_DIR", "/workspace"),
ComposeFile: envOr("HAVLINE_UPDATE_COMPOSE_FILE", "docker-compose.yml"),
Service: envOr("HAVLINE_UPDATE_SERVICE", "havline"),
Mode: envOr("HAVLINE_UPDATE_MODE", "local"),
RepoURL: envOr("HAVLINE_UPDATE_REPO", ""),
Branch: envOr("HAVLINE_UPDATE_BRANCH", "main"),
AppURL: envOr("HAVLINE_UPDATE_APP_URL", "http://havline:6893"),
HostProjectDir: envOr("HAVLINE_UPDATE_HOST_DIR", ""),
ProjectName: envOr("HAVLINE_UPDATE_PROJECT_NAME", ""),
SelfImage: envOr("HAVLINE_UPDATE_SELF_IMAGE", ""),
DockerSocket: envOr("HAVLINE_UPDATE_DOCKER_SOCK", "/var/run/docker.sock"),
}, nil)
if err != nil {
log.Fatal(err)
}
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer stop()
if err := server.Serve(ctx); err != nil && ctx.Err() == nil {
log.Fatal(err)
}
}
func envOr(key, fallback string) string {
if value := os.Getenv(key); value != "" {
return value
}
return fallback
}