main pico / cmd / scripts / file-size-sync / sync.go
Antonio Mika  ·  2026-10-10
 1package main
 2
 3import (
 4	"encoding/binary"
 5	"log/slog"
 6	"os"
 7
 8	"github.com/picosh/pico/pkg/db/postgres"
 9)
10
11func bail(err error) {
12	if err != nil {
13		panic(err)
14	}
15}
16
17func main() {
18	logger := slog.Default()
19
20	picoDb := postgres.NewDB(os.Getenv("DATABASE_URL"), logger)
21
22	posts, err := picoDb.FindPosts()
23	bail(err)
24	for _, post := range posts {
25		if post.Space == "imgs" {
26			continue
27		}
28		post.FileSize = binary.Size([]byte(post.Text))
29		_, err := picoDb.UpdatePost(post)
30		bail(err)
31	}
32}