aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/index.go5
-rw-r--r--pkg/data/db.go31
2 files changed, 35 insertions, 1 deletions
diff --git a/cmd/index.go b/cmd/index.go
index 5183870..ba9bb8f 100644
--- a/cmd/index.go
+++ b/cmd/index.go
@@ -7,6 +7,7 @@ import (
"log/slog"
"os"
"strings"
+ "time"
"github.com/jpappel/atlas/pkg/data"
"github.com/jpappel/atlas/pkg/index"
@@ -91,9 +92,11 @@ func RunIndex(gFlags GlobalFlags, iFlags IndexFlags, db *data.Query) byte {
}
traversedFiles := idx.Traverse(gFlags.NumWorkers, iFlags.IgnoreHidden)
+ crawlTime := time.Now().UTC().Unix()
fmt.Print("Crawled ", len(traversedFiles))
filteredFiles := idx.Filter(traversedFiles, gFlags.NumWorkers)
+ filterTime := time.Now().UTC().Unix()
fmt.Print(", Filtered ", len(filteredFiles))
var errCnt uint64
@@ -106,6 +109,7 @@ func RunIndex(gFlags GlobalFlags, iFlags IndexFlags, db *data.Query) byte {
}
fmt.Println()
}
+ parseTime := time.Now().UTC().Unix()
var err error
// switch in order to appease gopls...
@@ -119,6 +123,7 @@ func RunIndex(gFlags GlobalFlags, iFlags IndexFlags, db *data.Query) byte {
fmt.Fprintln(os.Stderr, "Error modifying index:", err)
return 1
}
+ db.UpdateInfo(len(traversedFiles), crawlTime, len(filteredFiles), filterTime, len(idx.Documents), parseTime)
case "tidy":
if err := db.Tidy(); err != nil {
fmt.Fprintln(os.Stderr, "Error while tidying:", err)
diff --git a/pkg/data/db.go b/pkg/data/db.go
index 56024d3..9127b88 100644
--- a/pkg/data/db.go
+++ b/pkg/data/db.go
@@ -5,6 +5,7 @@ import (
"database/sql"
"fmt"
"log/slog"
+ "os"
"regexp"
"strings"
"time"
@@ -451,9 +452,14 @@ func createSchema(db *sql.DB, version string) error {
}
t := time.Now().UTC().Unix()
- if _, err = tx.Exec("INSERT OR IGNORE INTO Info (key, value, updated) VALUES (?,?,?), (?,?,?)",
+ hostname, _ := os.Hostname()
+ if _, err = tx.Exec(`
+ INSERT OR IGNORE INTO Info(key, value, updated)
+ VALUES
+ (?,?,?), (?,?,?), (?,?,?)`,
"created", "", t,
"version", version, t,
+ "creation_hostname", hostname, t,
); err != nil {
tx.Rollback()
return err
@@ -610,6 +616,29 @@ func regex(re, s string) (bool, error) {
return regexp.MatchString(re, s)
}
+func (q Query) UpdateInfo(crawlCount int, crawlTime int64, filteredCount int, filterTime int64, parseCount int, parseTime int64) error {
+ tx, err := q.db.Begin()
+ if err != nil {
+ return err
+ }
+
+ defer tx.Rollback()
+
+ _, err = tx.Exec(`
+ INSERT OR UPDATE INTO Info
+ VALUES
+ (?,?,?), (?,?,?), (?,?,?)`,
+ "crawl", fmt.Sprint(crawlCount), crawlTime,
+ "filter", fmt.Sprint(filteredCount), filterTime,
+ "parse", fmt.Sprint(parseCount), parseTime,
+ )
+ if err != nil {
+ return err
+ }
+
+ return tx.Commit()
+}
+
func init() {
sql.Register("sqlite3_regex",
&sqlite3.SQLiteDriver{