summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherkulessi <git@herkulessi.de>2026-08-07 16:40:38 +0200
committerherkulessi <git@herkulessi.de>2026-08-07 16:40:38 +0200
commita81836e4f6f171ca30eaac2d1778a3fe1a4b41ff (patch)
tree50822f26557c47d03e72fb4fe63c04012c5068ad
parentd4c7b78278935d91642e0cf4572e11453ccfe9bb (diff)
support both embed fs and non-embed-fsHEADprod
-rw-r--r--db.go26
1 files changed, 17 insertions, 9 deletions
diff --git a/db.go b/db.go
index b2b43af..b00d8b9 100644
--- a/db.go
+++ b/db.go
@@ -39,16 +39,24 @@ func (w *Webpage) ConnectDb() (*sql.DB, error) {
}
var dir fs.ReadDirFile
- potenriallyDir, err := w.getMigrationRoot().Open("db")
- if err != nil {
- return nil, err
- }
- if foo, ok := potenriallyDir.(fs.ReadDirFile); !ok {
- dir = foo
- } else {
- return nil, errors.New("db directory is not a directory")
+ migrationRoot := w.getMigrationRoot()
+ var files []fs.DirEntry
+ switch v := migrationRoot.(type) {
+ default:
+ fmt.Fprintf(os.Stderr, "Unknown Filesystem type %T, trying anyways.\nYour Mileage may vary.", v)
+ potenriallyDir, err := w.getMigrationRoot().Open("db")
+ if err != nil {
+ return nil, err
+ }
+ if foo, ok := potenriallyDir.(fs.ReadDirFile); !ok {
+ dir = foo
+ } else {
+ return nil, errors.New("db directory is not a directory")
+ }
+ files, err = dir.ReadDir(0)
+ case embed.FS:
+ files, err = migrationRoot.(embed.FS).ReadDir("db")
}
- files, err := dir.ReadDir(0)
if err != nil {
return nil, err
}