mirror of
				https://github.com/quitesimpleorg/hs9001.git
				synced 2025-11-04 03:39:30 +01:00 
			
		
		
		
	Implement --today
Also assign timestamp to HistoryEntry during search Closes: #3
This commit is contained in:
		
							
								
								
									
										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 {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user