From 250af52750f836b8f36db025584737a8dcf5bd07 Mon Sep 17 00:00:00 2001 From: Albert S Date: Mon, 5 Apr 2021 13:00:27 +0200 Subject: [PATCH] add(): Pass HistoryEntry struct --- main.go | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/main.go b/main.go index afab71e..e05e984 100644 --- a/main.go +++ b/main.go @@ -100,6 +100,23 @@ func setDBVersion(conn *sql.DB, ver int) { } } +func NewHistoryEntry(cmd string) HistoryEntry { + wd, err := os.Getwd() + if err != nil { + log.Panic(err) + } + hostname, err := os.Hostname() + if err != nil { + log.Panic(err) + } + return HistoryEntry{ + user : os.Getenv("USER"), + hostname : hostname, + cmd : cmd, + cwd : wd, + } +} + func importFromStdin(conn *sql.DB) { scanner := bufio.NewScanner(os.Stdin) @@ -109,7 +126,9 @@ func importFromStdin(conn *sql.DB) { } for scanner.Scan() { - add(conn, scanner.Text(), "") + entry := NewHistoryEntry(scanner.Text()) + entry.cwd = "" + add(conn, entry) } _, err = conn.Exec("END;") @@ -148,19 +167,13 @@ func delete(conn *sql.DB, entryId uint32) { } } -func add(conn *sql.DB, cmd string, cwd string) { - user := os.Getenv("USER") - hostname, err := os.Hostname() - if err != nil { - log.Panic(err) - } - +func add(conn *sql.DB, entry HistoryEntry ) { stmt, err := conn.Prepare("INSERT INTO history (user, command, hostname, workdir) VALUES (?, ?, ?, ?)") if err != nil { log.Panic(err) } - _, err = stmt.Exec(user, cmd, hostname, cwd) + _, err = stmt.Exec(entry.user, entry.cmd, entry.hostname, entry.cwd) if err != nil { log.Panic(err) } @@ -240,11 +253,7 @@ func main() { var rgx = regexp.MustCompile("\\s+\\d+\\s+(.*)") rs := rgx.FindStringSubmatch(historycmd) if len(rs) == 2 { - wd, err := os.Getwd() - if err != nil { - log.Panic(err) - } - add(conn, rs[1], wd) + add(conn, NewHistoryEntry(rs[1])) } case "search": fallthrough; case "delete":