diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2025-06-26 19:57:30 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2025-06-26 19:57:30 -0400 |
| commit | f2b5e62e54edce872ddc5cc0cd8fc47251ed29c2 (patch) | |
| tree | 562c57939eedbbca6185fc3d7be920801a2c0754 | |
| parent | 9c4022e270a66d4005d5f210e43c2b62cde0525e (diff) | |
Add sane defaults for indexing and db storage
| -rw-r--r-- | cmd/atlas.go | 27 | ||||
| -rw-r--r-- | go.mod | 7 | ||||
| -rw-r--r-- | go.sum | 2 |
3 files changed, 28 insertions, 8 deletions
diff --git a/cmd/atlas.go b/cmd/atlas.go index f09e556..b98b0f6 100644 --- a/cmd/atlas.go +++ b/cmd/atlas.go @@ -2,15 +2,18 @@ package main import ( "context" + "errors" "flag" "fmt" "io" + "io/fs" "log/slog" "os" "runtime" "strings" "time" + "github.com/adrg/xdg" "github.com/jpappel/atlas/pkg/data" "github.com/jpappel/atlas/pkg/index" "github.com/jpappel/atlas/pkg/query" @@ -49,9 +52,20 @@ func printHelp() { } func main() { + home, _ := os.UserHomeDir() + dataHome := xdg.DataHome + if dataHome == "" { + dataHome = strings.Join([]string{home, ".local", "share"}, string(os.PathSeparator)) + } + dataHome += string(os.PathSeparator) + "atlas" + if err := os.Mkdir(dataHome, 0755); errors.Is(err, fs.ErrExist) { + } else if err != nil { + panic(err) + } + globalFlags := GlobalFlags{} - flag.StringVar(&globalFlags.IndexRoot, "root", "/home/goose/src/atlas/test", "root `directory` for indexing") - flag.StringVar(&globalFlags.DBPath, "db", "/home/goose/src/atlas/test.db", "`path` to document database") + flag.StringVar(&globalFlags.IndexRoot, "root", xdg.UserDirs.Documents, "root `directory` for indexing") + flag.StringVar(&globalFlags.DBPath, "db", dataHome+string(os.PathSeparator)+"default.db", "`path` to document database") flag.StringVar(&globalFlags.LogLevel, "logLevel", "error", "set log `level` (debug, info, warn, error)") flag.BoolVar(&globalFlags.LogJson, "logJson", false, "log to json") flag.UintVar(&globalFlags.NumWorkers, "numWorkers", uint(runtime.NumCPU()), "number of worker threads to use (defaults to core count)") @@ -90,13 +104,14 @@ func main() { // NOTE: providing `-outFormat` before `-outCustomFormat` might ignore user specified format queryFs.Func("outFormat", "output `format` for queries (default, json, custom)", func(arg string) error { - if arg == "default" { + switch arg { + case "default": queryFlags.Output = query.DefaultOutput{} return nil - } else if arg == "json" { + case "json": queryFlags.Output = query.JsonOutput{} return nil - } else if arg == "custom" { + case "custom": var err error queryFlags.Output, err = query.NewCustomOutput(queryFlags.CustomFormat, dateFormat) return err @@ -219,7 +234,7 @@ func main() { if err := interpreter.Run(); err != nil && err != io.EOF { slog.Error("Fatal error occured", slog.String("err", err.Error())) os.Exit(1) - } + } } } @@ -1,6 +1,6 @@ module github.com/jpappel/atlas -go 1.24.2 +go 1.24.4 require github.com/mattn/go-sqlite3 v1.14.27 @@ -9,4 +9,7 @@ require ( golang.org/x/term v0.32.0 ) -require golang.org/x/sys v0.33.0 // indirect +require ( + github.com/adrg/xdg v0.5.3 + golang.org/x/sys v0.33.0 // indirect +) @@ -1,3 +1,5 @@ +github.com/adrg/xdg v0.5.3 h1:xRnxJXne7+oWDatRhR1JLnvuccuIeCoBu2rtuLqQB78= +github.com/adrg/xdg v0.5.3/go.mod h1:nlTsY+NNiCBGCK2tpm09vRqfVzrc2fLmXGpBLF0zlTQ= github.com/goccy/go-yaml v1.17.1 h1:LI34wktB2xEE3ONG/2Ar54+/HJVBriAGJ55PHls4YuY= github.com/goccy/go-yaml v1.17.1/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/mattn/go-sqlite3 v1.14.27 h1:drZCnuvf37yPfs95E5jd9s3XhdVWLal+6BOK6qrv6IU= |
