Eric Bower
·
08 Apr 24
shasum.go
1package main
2
3import (
4 "log/slog"
5 "os"
6
7 "github.com/picosh/pico/db/postgres"
8 "github.com/picosh/pico/shared"
9)
10
11func main() {
12 logger := slog.Default()
13 picoCfg := shared.NewConfigSite()
14 picoCfg.Logger = logger
15 picoCfg.DbURL = os.Getenv("DATABASE_URL")
16 picoDb := postgres.NewDB(picoCfg.DbURL, picoCfg.Logger)
17
18 logger.Info("fetching all posts")
19 posts, err := picoDb.FindPosts()
20 if err != nil {
21 panic(err)
22 }
23
24 empty := 0
25 diff := 0
26 for _, post := range posts {
27 nextShasum := shared.Shasum([]byte(post.Text))
28 if post.Shasum == "" {
29 empty += 1
30 } else if post.Shasum != nextShasum {
31 diff += 1
32 }
33 post.Shasum = nextShasum
34
35 _, err := picoDb.UpdatePost(post)
36 if err != nil {
37 panic(err)
38 }
39 }
40
41 logger.Info("empty, diff", "empty", empty, "diff", diff)
42}