diff options
| -rw-r--r-- | cmd/hlang/http.go | 3 | ||||
| -rw-r--r-- | cmd/vest-pit-near/main.go | 18 | ||||
| -rw-r--r-- | cmd/xatci/main.go | 41 | ||||
| -rw-r--r-- | cmd/xedn/imgoptimize.go | 4 | ||||
| -rw-r--r-- | cmd/xedn/main.go | 36 | ||||
| -rw-r--r-- | cmd/xedn/stablediffusion.go | 8 | ||||
| -rw-r--r-- | internal/confyg/flagconfyg/flagconfyg.go | 4 | ||||
| -rw-r--r-- | internal/internal.go | 3 |
8 files changed, 49 insertions, 68 deletions
diff --git a/cmd/hlang/http.go b/cmd/hlang/http.go index ef496a3..f96704f 100644 --- a/cmd/hlang/http.go +++ b/cmd/hlang/http.go @@ -10,7 +10,6 @@ import ( "os" "github.com/rs/cors" - "within.website/ln/ex" "within.website/x/cmd/hlang/run" ) @@ -27,7 +26,7 @@ func doHTTP() error { srv := &http.Server{ Addr: ":" + *port, - Handler: ex.HTTPLog(cors.Default().Handler(http.DefaultServeMux)), + Handler: cors.Default().Handler(http.DefaultServeMux), } if *sockpath != "" { diff --git a/cmd/vest-pit-near/main.go b/cmd/vest-pit-near/main.go index 2d9aa7e..a6e10bd 100644 --- a/cmd/vest-pit-near/main.go +++ b/cmd/vest-pit-near/main.go @@ -14,11 +14,9 @@ import ( "path/filepath" "time" + "golang.org/x/exp/slog" "tailscale.com/tsnet" "tailscale.com/tsweb" - "within.website/ln" - "within.website/ln/ex" - "within.website/ln/opname" "within.website/x/internal" "within.website/x/internal/yeet" "within.website/x/web/discordwebhook" @@ -27,7 +25,7 @@ import ( var ( checkURL = flag.String("check-url", "https://am.i.mullvad.net/json", "connection endpoint to check") containerNet = flag.String("container", "wireguard", "container to assume the network stack of") - dockerImage = flag.String("docker-image", "ghcr.io/xe/alpine:3.17.3", "docker image to use") + dockerImage = flag.String("docker-image", "ghcr.io/xe/alpine:3.18.2", "docker image to use") stateDir = flag.String("state-dir", "", "where to store state data") tsnetHostname = flag.String("tsnet-hostname", "vest-pit-near", "hostname for tsnet") webhook = flag.String("webhook", "", "Discord webhook URL") @@ -38,8 +36,6 @@ var ( func main() { internal.HandleStartup() - ctx := context.Background() - os.MkdirAll(filepath.Join(*stateDir, "tsnet"), 0700) srv := &tsnet.Server{ @@ -53,14 +49,14 @@ func main() { lis, err := srv.Listen("tcp", ":80") if err != nil { - ln.FatalErr(ctx, err, ln.Action("tsnet listening")) + log.Fatalf("can't listen over tsnet: %v", err) } http.DefaultServeMux.HandleFunc("/metrics", tsweb.VarzHandler) defer srv.Close() defer lis.Close() - ln.FatalErr(opname.With(ctx, "metrics-tsnet"), http.Serve(lis, ex.HTTPLog(http.DefaultServeMux))) + log.Fatal(http.Serve(lis, http.DefaultServeMux)) } func cron() { @@ -70,7 +66,7 @@ func cron() { defer cancel() if err := check(ctx); err != nil { - ln.Error(ctx, err) + slog.Error("can't check status", "err", err) defer failureCount.Set(1) checkErr := err @@ -82,12 +78,12 @@ func cron() { AvatarURL: "https://cdn.discordapp.com/attachments/262330174140448768/1093162451341684736/04401-1288759123-flat_color_limited_palette_low_contrast_high_contrast_chromatic_aberration_1girl_hoodie_green_hair_coffee_onsen_green.png", })) if err != nil { - ln.Error(ctx, err) + slog.Error("can't report VPN is down", "err", err) return } if err := discordwebhook.Validate(resp); err != nil { - ln.Error(ctx, err) + slog.Error("can't validate webhook response", "err", err) return } } diff --git a/cmd/xatci/main.go b/cmd/xatci/main.go index 6cdb50d..ae6db94 100644 --- a/cmd/xatci/main.go +++ b/cmd/xatci/main.go @@ -4,6 +4,7 @@ import ( "context" "flag" "fmt" + "log" "strings" "time" @@ -12,8 +13,7 @@ import ( "github.com/mymmrac/telego" th "github.com/mymmrac/telego/telegohandler" tu "github.com/mymmrac/telego/telegoutil" - "within.website/ln" - "within.website/ln/opname" + "golang.org/x/exp/slog" "within.website/x/internal" "within.website/x/web/marginalia" "within.website/x/web/openai/chatgpt" @@ -30,10 +30,6 @@ var ( func main() { internal.HandleStartup() - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - ctx = opname.With(ctx, "xatci") - mc := marginalia.New(*marginaliaToken, nil) cGPT := chatgpt.NewClient(*openAIToken) @@ -42,19 +38,19 @@ func main() { // use in development only bot, err := telego.NewBot(*telegramToken) if err != nil { - ln.FatalErr(ctx, err) + log.Fatal(err) } // Get updates channel updates, err := bot.UpdatesViaLongPolling(nil) if err != nil { - ln.FatalErr(ctx, err) + log.Fatal(err) } // Create bot handler and specify from where to get updates bh, err := th.NewBotHandler(bot, updates) if err != nil { - ln.FatalErr(ctx, err) + log.Fatal(err) } // Stop handling updates @@ -70,7 +66,7 @@ func main() { tu.ID(update.Message.Chat.ID), fmt.Sprintf("Hello %s!", update.Message.From.FirstName), )); err != nil { - ln.Error(ctx, err) + slog.Error("can't send message", "err", err) } }, th.CommandEqual("start")) @@ -84,22 +80,20 @@ func main() { ctx, cancel := context.WithTimeout(context.Background(), 5*time.Minute) defer cancel() - ctx = opname.With(ctx, "xatci.marginalia.search") q := strings.Join(strings.Split(update.Message.Text, " ")[1:], " ") - ctx = ln.WithF(ctx, ln.F{ - "telegram_requestor": update.Message.From.ID, - "telegram_requestor_name": fmt.Sprintf("%s %s", update.Message.From.FirstName, update.Message.From.LastName), - "search_query": q, - }) - + lg := slog.Default().With( + "telegram_requestor", update.Message.From.ID, + "telegram_requestor_name", fmt.Sprintf("%s %s", update.Message.From.FirstName, update.Message.From.LastName), + "search_query", q, + ) results, err := mc.Search(ctx, &marginalia.Request{ Query: q, Count: aws.Int(5), }) if err != nil { - ln.Error(ctx, err) + lg.Error("can't search", "err", err) bot.SendMessage(tu.Message( tu.ID(update.Message.Chat.ID), fmt.Sprintf("Error: %v", err), @@ -114,10 +108,7 @@ func main() { for _, result := range results.Results { fmt.Fprintf(&sb, "**%s** (%s):\n", result.Title, result.URL) - ln.Log(ctx, ln.Action("resolving article"), ln.F{ - "result_title": result.Title, - "result_url": result.URL, - }) + lg.Info("resolving article", "result_title", result.Title, "result_url", result.URL) article, err := readability.FromURL(result.URL, 30*time.Second) if err != nil { @@ -139,7 +130,7 @@ func main() { }, }) if err != nil { - ln.Error(ctx, err) + lg.Error("can't summarize article", "err", err) } fmt.Fprintf(&sb, "%s\n\n", resp.Choices[0].Message.Content) @@ -149,11 +140,11 @@ func main() { msg.ParseMode = telego.ModeMarkdown if _, err := bot.SendMessage(msg); err != nil { - ln.Error(ctx, err) + lg.Error("can't send final message", "err", err) return } - ln.Log(ctx, ln.Action("query successful")) + lg.Info("query successful") }, th.CommandEqual("search")) // Register new handler with match on any command diff --git a/cmd/xedn/imgoptimize.go b/cmd/xedn/imgoptimize.go index 1b1347b..95779c6 100644 --- a/cmd/xedn/imgoptimize.go +++ b/cmd/xedn/imgoptimize.go @@ -17,9 +17,9 @@ import ( "github.com/chai2010/webp" "github.com/disintegration/imaging" "go.etcd.io/bbolt" + "golang.org/x/exp/slog" "golang.org/x/sync/singleflight" "tailscale.com/metrics" - "within.website/ln" "within.website/x/internal/avif" ) @@ -74,7 +74,7 @@ func (ois *OptimizedImageServer) ServeHTTP(w http.ResponseWriter, r *http.Reques data, err := ois.ResizeTo(width, character, mood, format) if err != nil { - ln.Error(r.Context(), err) + slog.Error("can't convert image", "err", err) http.Error(w, "can't convert image", http.StatusInternalServerError) return } diff --git a/cmd/xedn/main.go b/cmd/xedn/main.go index 02317ba..d1f263c 100644 --- a/cmd/xedn/main.go +++ b/cmd/xedn/main.go @@ -3,7 +3,6 @@ package main import ( "bytes" - "context" "crypto/md5" _ "embed" "encoding/json" @@ -24,14 +23,12 @@ import ( "github.com/rs/cors" "github.com/sebest/xff" "go.etcd.io/bbolt" + "golang.org/x/exp/slog" "golang.org/x/sync/singleflight" "tailscale.com/hostinfo" "tailscale.com/metrics" "tailscale.com/tsnet" "tailscale.com/tsweb" - "within.website/ln" - "within.website/ln/ex" - "within.website/ln/opname" "within.website/x/internal" "within.website/x/web" "within.website/x/web/stablediffusion" @@ -91,12 +88,12 @@ func (dc *Cache) Purge(w http.ResponseWriter, r *http.Request) { defer r.Body.Close() if err := json.NewDecoder(r.Body).Decode(&files); err != nil { - ln.Error(r.Context(), err, ln.F{"files": files}) + slog.Error("can't read files to be purged", "err", err) http.Error(w, err.Error(), http.StatusBadRequest) return } - ln.Log(r.Context(), ln.Action("purging files"), ln.F{"files": files}) + slog.Info("purging files", "files", files) if err := dc.DB.Update(func(tx *bbolt.Tx) error { for _, fname := range files { @@ -112,7 +109,7 @@ func (dc *Cache) Purge(w http.ResponseWriter, r *http.Request) { return nil }); err != nil { - ln.Error(r.Context(), err, ln.F{"files": files}) + slog.Error("can't purge files", "err", err, "files", files) http.Error(w, err.Error(), http.StatusBadRequest) return } @@ -302,10 +299,10 @@ func (dc *Cache) GetFile(w http.ResponseWriter, r *http.Request) error { } func (dc *Cache) CronPurgeDead() { - ctx := opname.With(context.Background(), "cronpurgedead") + lg := slog.Default().With("job", "purgeDead") for range time.Tick(30 * time.Minute) { - ln.Log(ctx, ln.Action("starting")) + lg.Info("starting") if err := dc.DB.Update(func(tx *bbolt.Tx) error { if err := tx.ForEach(func(name []byte, b *bbolt.Bucket) error { @@ -313,10 +310,10 @@ func (dc *Cache) CronPurgeDead() { return nil } - ctx := ln.WithF(ctx, ln.F{"path": string(name)}) + lg := lg.With("path", string(name)) diesAtBytes := b.Get([]byte("diesAt")) if diesAtBytes == nil { - ln.Log(ctx, ln.Info("no diesAt key")) + lg.Error("no diesAt key") return nil } @@ -331,7 +328,7 @@ func (dc *Cache) CronPurgeDead() { } fileDeaths.Add(string(name), 1) - ln.Log(ctx, ln.Info("deleted"), ln.F{"diesAt": diesAt.Format(time.RFC3339)}) + lg.Info("deleted", "diesAt", diesAt) } return nil @@ -341,7 +338,7 @@ func (dc *Cache) CronPurgeDead() { return nil }); err != nil { - ln.Error(ctx, err) + lg.Info("can't update database: %v", "err", err) } } } @@ -368,7 +365,6 @@ func init() { func main() { internal.HandleStartup() - ctx := opname.With(context.Background(), "startup") hostinfo.SetApp("within.website/x/cmd/xedn") @@ -376,7 +372,7 @@ func main() { db, err := bbolt.Open(filepath.Join(*dir, "data"), 0600, &bbolt.Options{}) if err != nil { - ln.FatalErr(ctx, err) + log.Fatal(err) } dc := &Cache{ @@ -413,7 +409,7 @@ func main() { go func() { lis, err := srv.Listen("tcp", ":80") if err != nil { - ln.FatalErr(ctx, err, ln.Action("tsnet listening")) + log.Fatalf("can't listen on tsnet: %v", err) } http.DefaultServeMux.HandleFunc("/debug/varz", tsweb.VarzHandler) @@ -424,12 +420,12 @@ func main() { defer srv.Close() defer lis.Close() - ln.FatalErr(opname.With(ctx, "metrics-tsnet"), http.Serve(lis, ex.HTTPLog(http.DefaultServeMux))) + log.Fatal(http.Serve(lis, http.DefaultServeMux)) }() xffMW, err := xff.Default() if err != nil { - ln.FatalErr(ctx, err) + log.Fatal(err) } os.MkdirAll(*dir, 0700) @@ -483,6 +479,6 @@ func main() { mux.HandleFunc("/file/christine-static/", hdlr) mux.HandleFunc("/file/xeserv-akko/", hdlr) - ln.Log(context.Background(), ln.F{"addr": *addr}) - http.ListenAndServe(*addr, cors.Default().Handler(xffMW.Handler(ex.HTTPLog(mux)))) + slog.Info("starting up", "addr", *addr) + http.ListenAndServe(*addr, cors.Default().Handler(xffMW.Handler(mux))) } diff --git a/cmd/xedn/stablediffusion.go b/cmd/xedn/stablediffusion.go index f62226c..1035ce1 100644 --- a/cmd/xedn/stablediffusion.go +++ b/cmd/xedn/stablediffusion.go @@ -16,8 +16,8 @@ import ( "time" "go.etcd.io/bbolt" + "golang.org/x/exp/slog" "golang.org/x/sync/singleflight" - "within.website/ln" "within.website/x/web/stablediffusion" ) @@ -39,7 +39,7 @@ type StableDiffusion struct { func (sd *StableDiffusion) RenderImage(ctx context.Context, w http.ResponseWriter, hash string) error { prompt, seed := hallucinatePrompt(hash) - ln.Log(ctx, ln.Info("generating new image"), ln.F{"prompt": prompt}) + slog.Info("generating new image", "prompt", prompt) imgsVal, err, _ := sd.group.Do(hash, func() (interface{}, error) { imgs, err := sd.client.Generate(ctx, stablediffusion.SimpleImageRequest{ @@ -83,7 +83,7 @@ func (sd *StableDiffusion) RenderImage(ctx context.Context, w http.ResponseWrite } imgs := imgsVal.(*stablediffusion.ImageResponse) - ln.Log(ctx, ln.Info("done generating image"), ln.F{"prompt": prompt}) + slog.Info("done generating image", "prompt", prompt) if err := sd.db.Update(func(tx *bbolt.Tx) error { bkt := tx.Bucket([]byte("avatars")) @@ -155,8 +155,8 @@ func (sd *StableDiffusion) ServeHTTP(w http.ResponseWriter, r *http.Request) { if !found { if err := sd.RenderImage(r.Context(), w, hash); err != nil { + slog.Error("can't render image", "err", err) http.Error(w, "cannot render image, sorry", http.StatusInternalServerError) - ln.Error(r.Context(), err) return } } diff --git a/internal/confyg/flagconfyg/flagconfyg.go b/internal/confyg/flagconfyg/flagconfyg.go index abf24a8..882853a 100644 --- a/internal/confyg/flagconfyg/flagconfyg.go +++ b/internal/confyg/flagconfyg/flagconfyg.go @@ -7,9 +7,9 @@ import ( "context" "flag" "io/ioutil" + "log" "strings" - "within.website/ln" "within.website/x/internal/confyg" ) @@ -22,7 +22,7 @@ func CmdParse(ctx context.Context, path string) { err = Parse(path, data, flag.CommandLine) if err != nil { - ln.Error(ctx, err) + log.Printf("can't parse %s: %v", path, err) return } } diff --git a/internal/internal.go b/internal/internal.go index 1f0a887..b9c1962 100644 --- a/internal/internal.go +++ b/internal/internal.go @@ -10,7 +10,6 @@ import ( "github.com/posener/complete" "go4.org/legal" - "within.website/ln/opname" "within.website/x/internal/confyg/flagconfyg" "within.website/x/internal/flagenv" "within.website/x/internal/manpage" @@ -58,7 +57,7 @@ func HandleStartup() { flag.Parse() flagenv.Parse() - ctx := opname.With(context.Background(), "internal.HandleStartup") + ctx := context.Background() if *config != "" { flagconfyg.CmdParse(ctx, *config) |
