aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/atlas.go27
-rw-r--r--go.mod7
-rw-r--r--go.sum2
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)
- }
+ }
}
}
diff --git a/go.mod b/go.mod
index bef6f2c..8789075 100644
--- a/go.mod
+++ b/go.mod
@@ -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
+)
diff --git a/go.sum b/go.sum
index 1f11a34..8fa6344 100644
--- a/go.sum
+++ b/go.sum
@@ -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=