feat: sqlite storage draft
This commit is contained in:
30
cmd/main.go
30
cmd/main.go
@ -5,6 +5,8 @@ import (
|
||||
"flag"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"donniemarko/internal/render"
|
||||
"donniemarko/internal/scanner"
|
||||
@ -18,6 +20,7 @@ func main() {
|
||||
var help bool
|
||||
rootFolder := flag.String("root", ".", "Root folder to serve files from")
|
||||
listenAddr := flag.String("addr", "localhost:5555", "Address to listen on")
|
||||
dbPath := flag.String("db", "", "SQLite database path (empty uses ~/.local/share/donniemarko/notes.db)")
|
||||
flag.BoolVar(&help, "help", false, "display this program usage")
|
||||
flag.Parse()
|
||||
|
||||
@ -27,7 +30,32 @@ func main() {
|
||||
}
|
||||
|
||||
// Initialize storage
|
||||
noteStorage := storage.NewNoteStorage()
|
||||
var noteStorage storage.Storage
|
||||
var sqliteStorage *storage.SQLiteStorage
|
||||
resolvedDBPath := *dbPath
|
||||
if resolvedDBPath == "" {
|
||||
homeDir, err := os.UserHomeDir()
|
||||
if err != nil {
|
||||
log.Fatalf("failed to resolve home directory: %v", err)
|
||||
}
|
||||
resolvedDBPath = filepath.Join(homeDir, ".local", "share", "donniemarko", "notes.db")
|
||||
}
|
||||
|
||||
if err := os.MkdirAll(filepath.Dir(resolvedDBPath), 0o700); err != nil {
|
||||
log.Fatalf("failed to create database directory: %v", err)
|
||||
}
|
||||
|
||||
var err error
|
||||
sqliteStorage, err = storage.NewSQLiteStorage(resolvedDBPath)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to open sqlite db: %v", err)
|
||||
}
|
||||
defer func() {
|
||||
if err := sqliteStorage.Close(); err != nil {
|
||||
log.Printf("failed to close sqlite db: %v", err)
|
||||
}
|
||||
}()
|
||||
noteStorage = sqliteStorage
|
||||
|
||||
// Initialize scanner
|
||||
monitor := scanner.NewScanner(*rootFolder)
|
||||
|
||||
Reference in New Issue
Block a user