mirror of
https://github.com/quitesimpleorg/hs9001.git
synced 2024-12-04 20:32:36 +01:00
Implement --today
Also assign timestamp to HistoryEntry during search Closes: #3
This commit is contained in:
parent
ebcdfa5ff4
commit
6d4e7a96dc
14
main.go
14
main.go
@ -164,7 +164,7 @@ type searchopts struct {
|
|||||||
func search(conn *sql.DB, opts searchopts) list.List {
|
func search(conn *sql.DB, opts searchopts) list.List {
|
||||||
args := make([]interface{}, 0)
|
args := make([]interface{}, 0)
|
||||||
var sb strings.Builder
|
var sb strings.Builder
|
||||||
sb.WriteString("SELECT id, command, workdir, user, hostname, retval ")
|
sb.WriteString("SELECT id, command, workdir, user, hostname, retval, strftime(\"%s\", timestamp) ")
|
||||||
sb.WriteString("FROM history ")
|
sb.WriteString("FROM history ")
|
||||||
sb.WriteString("WHERE 1=1 ") //1=1 so we can append as many AND foo as we want, or none
|
sb.WriteString("WHERE 1=1 ") //1=1 so we can append as many AND foo as we want, or none
|
||||||
|
|
||||||
@ -213,10 +213,12 @@ func search(conn *sql.DB, opts searchopts) list.List {
|
|||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
var entry HistoryEntry
|
var entry HistoryEntry
|
||||||
err = rows.Scan(&entry.id, &entry.cmd, &entry.cwd, &entry.user, &entry.hostname, &entry.retval)
|
var timestamp int64
|
||||||
|
err = rows.Scan(&entry.id, &entry.cmd, &entry.cwd, &entry.user, &entry.hostname, &entry.retval, ×tamp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err)
|
log.Panic(err)
|
||||||
}
|
}
|
||||||
|
entry.timestamp = time.Unix(timestamp, 0)
|
||||||
result.PushBack(&entry)
|
result.PushBack(&entry)
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
@ -351,13 +353,14 @@ func main() {
|
|||||||
var afterTime string
|
var afterTime string
|
||||||
var beforeTime string
|
var beforeTime string
|
||||||
var distinct bool = true
|
var distinct bool = true
|
||||||
|
var today bool = false
|
||||||
var retVal int
|
var retVal int
|
||||||
searchCmd.StringVar(&workDir, "cwd", "", "Search only within this workdir")
|
searchCmd.StringVar(&workDir, "cwd", "", "Search only within this workdir")
|
||||||
searchCmd.StringVar(&afterTime, "after", "", "Start searching from this timeframe")
|
searchCmd.StringVar(&afterTime, "after", "", "Start searching from this timeframe")
|
||||||
searchCmd.StringVar(&beforeTime, "before", "", "End searching from this timeframe")
|
searchCmd.StringVar(&beforeTime, "before", "", "End searching from this timeframe")
|
||||||
searchCmd.BoolVar(&distinct, "distinct", true, "Remove consecutive duplicate commands from output")
|
searchCmd.BoolVar(&distinct, "distinct", true, "Remove consecutive duplicate commands from output")
|
||||||
|
searchCmd.BoolVar(&today, "today", false, "Search only today's entries. Overrides --after")
|
||||||
searchCmd.IntVar(&retVal, "ret", -9001, "Only query commands that returned with this exit code. -9001=all (default)")
|
searchCmd.IntVar(&retVal, "ret", -9001, "Only query commands that returned with this exit code. -9001=all (default)")
|
||||||
|
|
||||||
searchCmd.Parse(globalargs)
|
searchCmd.Parse(globalargs)
|
||||||
|
|
||||||
args := searchCmd.Args()
|
args := searchCmd.Args()
|
||||||
@ -378,6 +381,11 @@ func main() {
|
|||||||
}
|
}
|
||||||
opts.workdir = &wd
|
opts.workdir = &wd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if today {
|
||||||
|
afterTime = "today"
|
||||||
|
}
|
||||||
|
|
||||||
if afterTime != "" {
|
if afterTime != "" {
|
||||||
afterTimestamp, err := naturaldate.Parse(afterTime, time.Now())
|
afterTimestamp, err := naturaldate.Parse(afterTime, time.Now())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user