diff options
| author | ewy <ewy0@protonmail.com> | 2026-05-22 20:06:56 +0200 |
|---|---|---|
| committer | ewy <ewy0@protonmail.com> | 2026-05-22 20:06:56 +0200 |
| commit | 094846c15f4148c166ac297e26a1248bab0ab5c7 (patch) | |
| tree | d9f671bb0d34b5be52db62636278f5d3e5657283 /storage/views.go | |
| parent | 3ea1ed1362984619b182c0ddf9a6b1dc7ba5bcd0 (diff) | |
add views, expand api, add windows opening thing overridemain
Diffstat (limited to 'storage/views.go')
| -rw-r--r-- | storage/views.go | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/storage/views.go b/storage/views.go new file mode 100644 index 0000000..6808f11 --- /dev/null +++ b/storage/views.go @@ -0,0 +1,41 @@ +package storage + +import ( + "embed" + _ "embed" + "fmt" + "io/fs" + "path/filepath" + "strings" + "sts2stats/spool" +) + +//go:embed views +var data embed.FS + +func SetupViews() error { + err := fs.WalkDir(data, "views", func(path string, d fs.DirEntry, err error) error { + if d.IsDir() { + return nil + } + ext := filepath.Ext(path) + name := strings.TrimSuffix(strings.Join(strings.Split(path, "/")[1:], "_"), ext) + content, err := fs.ReadFile(data, path) + if err != nil { + spool.Warn("view %s: %s\n", name, err) + return nil + } + err = AddView(name, string(content)) + if err != nil { + spool.Warn("view %s: %s\n", name, err) + return nil + } + return nil + }) + return err +} + +func AddView(name string, selectQuery string) error { + _, err := conn.Exec(fmt.Sprintf("CREATE OR REPLACE VIEW _%s AS %s;", name, selectQuery)) + return err +} |
