33 lines
805 B
Go
33 lines
805 B
Go
package main
|
|
|
|
import (
|
|
"io/fs"
|
|
"log"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
type Database struct {
|
|
Keys []string
|
|
Entries map[string]string
|
|
}
|
|
|
|
func BuildDB(directory string) Database {
|
|
logger := log.Default()
|
|
logger.Println("Building database")
|
|
// keys, entries
|
|
var keys []string
|
|
entries := map[string]string{}
|
|
// get files in directory and read them
|
|
directory = strings.TrimRight(directory, "/") // we don't need that last / -> if '/' is used as directory, you are dumb.
|
|
entriesDirFs := os.DirFS(directory)
|
|
keys, err := fs.Glob(entriesDirFs, "*")
|
|
if err != nil { logger.Panicln(err) }
|
|
for _, k := range keys {
|
|
contentB, err := os.ReadFile(directory + "/" + k)
|
|
if err != nil { logger.Panicln(err) }
|
|
entries[k] = string(contentB)
|
|
}
|
|
// create bleve index
|
|
return Database{Keys: keys, Entries: entries}
|
|
}
|