diff --git a/.goreleaser.yaml b/.goreleaser.yaml index e0820ea..0b43674 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -29,7 +29,7 @@ kos: - "{{.Tag}}" - latest base_image: alpine:latest - user: "1001:1001" + user: "1000:1000" bare: true preserve_import_paths: false platforms: diff --git a/main.go b/main.go index 222bc96..51d40cd 100644 --- a/main.go +++ b/main.go @@ -19,8 +19,6 @@ const ( defaultScheduleTime = "30m" ) -var logger *slog.Logger - var logLevels = map[string]slog.Level{ "debug": slog.LevelDebug, "info": slog.LevelInfo, @@ -39,35 +37,37 @@ func main() { } // Initialize logger with the determined log level - logger = slog.New(prettylog.NewHandler(&slog.HandlerOptions{Level: logLevel})) + logger := slog.New(prettylog.NewHandler(&slog.HandlerOptions{Level: logLevel})) + + slog.SetDefault(logger) // Handle signals for graceful shutdown sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) go func() { sig := <-sigChan - logger.Info("Received signal, shutting down", "signal", sig) + slog.Info("Received signal, shutting down", "signal", sig) os.Exit(0) }() pocketConsumerKey := os.Getenv("POCKET_CONSUMER_KEY") if pocketConsumerKey == "" { - logger.Error("POCKET_CONSUMER_KEY is not set") + slog.Error("POCKET_CONSUMER_KEY is not set") os.Exit(1) } pocketAccessToken := os.Getenv("POCKET_ACCESS_TOKEN") if pocketAccessToken == "" { - logger.Error("POCKET_ACCESS_TOKEN is not set") + slog.Error("POCKET_ACCESS_TOKEN is not set") os.Exit(1) } linkdingAccessToken := os.Getenv("LINKDING_ACCESS_TOKEN") if linkdingAccessToken == "" { - logger.Error("LINKDING_ACCESS_TOKEN is not set") + slog.Error("LINKDING_ACCESS_TOKEN is not set") os.Exit(1) } linkdingURL := os.Getenv("LINKDING_URL") if linkdingURL == "" { - logger.Error("LINKDING_URL is not set") + slog.Error("LINKDING_URL is not set") os.Exit(1) } @@ -79,37 +79,39 @@ func main() { pocketClient, err := pocket.New(pocketConsumerKey, pocketAccessToken) if err != nil { - logger.Error("Failed to create Pocket client", "error", err) + slog.Error("Failed to create Pocket client", "error", err) os.Exit(1) } linkdingClient, err := linkding.New(linkdingURL, linkdingAccessToken) if err != nil { - logger.Error("Failed to create Linkding client", "error", err) + slog.Error("Failed to create Linkding client", "error", err) os.Exit(1) } // Start - logger.Info("Starting") + slog.Info("Starting") runProcess := func(since int64) int64 { - logger.Debug("Processing", "since", time.Unix(since, 0).Format(time.RFC3339)) + slog.Debug("Processing", "since", time.Unix(since, 0).Format(time.RFC3339)) newSince := time.Now().Unix() links, err := pocketClient.Retrive(since) if err == pocket.ErrEmptyList { - logger.Info("No new links") + slog.Info("No new data from Pocket") return newSince } if err != nil { - logger.Error("Failed to retrieve Pocket data", "error", err) + slog.Error("Failed to retrieve Pocket data", "error", err) return since } for _, link := range links { + slog.Info("Processing", "resolved_url", link) if err := linkdingClient.Add(link); err != nil { - logger.Error("Failed to save bookmark", "error", err) + slog.Error("Failed to save bookmark", "error", err, "resolved_url", link) return since } + slog.Info("Added", "url", link) } - logger.Info("Processed", "count", len(links)) + slog.Info("Processed", "count", len(links)) return newSince }