Skip to content

Commit fd56304

Browse files
committed
Support for custom db path in client CLI
1 parent e188217 commit fd56304

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

cmd/hs/search.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func commandSearch() *cli.Command {
6565
if extFilter != "" {
6666
return searchByExt(c, filename)
6767
}
68-
return searchFiles(filename)
68+
return searchFiles(c, filename)
6969
},
7070
}
7171
}
@@ -96,7 +96,7 @@ func searchByTag(c *cli.Context) error {
9696
func searchByExt(c *cli.Context, filename string) error {
9797
ext := c.String("ext")
9898
limit := c.String("limit")
99-
db, err := dbConn("")
99+
db, err := dbConn(c.String("db"))
100100
if err != nil {
101101
return fmt.Errorf("failed to get database connection: %v", err)
102102
}
@@ -121,7 +121,7 @@ func searchByExt(c *cli.Context, filename string) error {
121121
func searchByHost(c *cli.Context, filename string) error {
122122
host := c.String("host")
123123
limit := c.String("limit")
124-
db, err := dbConn("")
124+
db, err := dbConn(c.String("db"))
125125
if err != nil {
126126
return fmt.Errorf("failed to get database connection: %v", err)
127127
}
@@ -143,8 +143,8 @@ func searchByHost(c *cli.Context, filename string) error {
143143
return printRows(rows)
144144
}
145145

146-
func searchFiles(filename string) error {
147-
db, err := dbConn("")
146+
func searchFiles(c *cli.Context, filename string) error {
147+
db, err := dbConn(c.String("db"))
148148
if err != nil {
149149
return fmt.Errorf("failed to get database connection: %v", err)
150150
}

internal/db/db.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,18 @@ import (
44
"database/sql"
55
_ "embed"
66
"fmt"
7+
"os"
8+
"path/filepath"
9+
10+
"github.com/rubiojr/hashup/internal/log"
711
)
812

913
//go:embed hashup.sql
1014
var Schema string
1115

1216
// Open a SQLite database with appropriate pragmas
1317
func OpenDatabase(dbPath string) (*sql.DB, error) {
18+
log.Debugf("Opening database %s", dbPath)
1419
pragmas := []string{
1520
"_foreign_keys=ON", // Enable foreign key constraints
1621
"_journal_mode=WAL", // Use WAL mode for better concurrency
@@ -22,6 +27,9 @@ func OpenDatabase(dbPath string) (*sql.DB, error) {
2227
for _, pragma := range pragmas {
2328
plist += fmt.Sprintf("&%s", pragma)
2429
}
30+
if err := os.MkdirAll(filepath.Dir(dbPath), 0755); err != nil {
31+
return nil, fmt.Errorf("failed to create database directory: %v", err)
32+
}
2533
dsn := fmt.Sprintf("file:%s?mode=rwc%s", dbPath, plist)
2634

2735
db, err := sql.Open("sqlite3", dsn)

0 commit comments

Comments
 (0)