- configuration
This commit is contained in:
abelith committed 2026-08-08 17:40:47 +05:00
1 parent 281d7d76d4
commit a8f164c241
4 files changed
+60 -3

No files matched your search

+7
View File
@@ -2,6 +2,13 @@
## [Latest]
## [0.2.0-alpha] - 2026-08-08
### Added
- Configuration options
## [Unreleased]
## [0.1.0-alpha] - 2026-08-04
### Added
+12 -2
View File
@@ -7,6 +7,7 @@
## Table of contents
- [Features](#features)
- [Building from Source](#building-from-source)
- [Configuration](#configuration)
- [Usage](#usage)
- [Upcoming Features](#upcoming-features)
@@ -34,10 +35,20 @@ cd spellbook
# Build static binary
CGO_ENABLED=0 go build -o spellbook .
# Move to bin directory (for Linux/macOS)
mv spellbook $(go env GOPATH)/bin/
```
---
## Configuration
### Env
- `SPELLBOOK_DB_PATH`: db location (example: `/spellbook/spellbook.db`)
---
## Usage
- Use `spellbook help` to list commands
@@ -95,5 +106,4 @@ spellbook my-spell target=127.0.0.1
---
## Upcoming Features
- Search to navigate your spell book
- Configuration
- Search to navigate your spell book
+9 -1
View File
@@ -7,10 +7,12 @@ import (
"github.com/abelith/spellbook/internal/adapters/caster"
"github.com/abelith/spellbook/internal/adapters/sqlite"
"github.com/abelith/spellbook/internal/application"
"github.com/abelith/spellbook/internal/config"
"github.com/abelith/spellbook/internal/controllers/cli"
_ "modernc.org/sqlite"
"os"
"os/signal"
"path/filepath"
"syscall"
)
@@ -25,7 +27,13 @@ func main() {
ctx, cancel := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer cancel()
db, err := sql.Open("sqlite", "db.sql")
cfg, err := config.NewConfig()
handleErr(err)
dir := filepath.Dir(cfg.DBPath)
handleErr(os.MkdirAll(dir, 0755))
db, err := sql.Open("sqlite", cfg.DBPath)
handleErr(err)
repo := sqlite.NewRepo(db)
+32
View File
@@ -0,0 +1,32 @@
package config
import (
"os"
"path/filepath"
)
type Config struct {
DBPath string
}
func NewConfig() (*Config, error) {
dsn, err := getDBPath()
if err != nil {
return nil, err
}
return &Config{DBPath: dsn}, nil
}
func getDBPath() (string, error) {
if dsn := os.Getenv("SPELLBOOK_DB_PATH"); dsn != "" {
return dsn, nil
}
dir, err := os.UserConfigDir()
if err != nil {
return "", err
}
return filepath.Join(dir, "spellbook", "spellbook.db"), nil
}