json support
This commit is contained in:
		
							
								
								
									
										30
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								main.go
									
									
									
									
									
								
							@ -1,5 +1,7 @@
 | 
			
		||||
// Copyright 2021, johan@nosd.in
 | 
			
		||||
//go:build freebsd
 | 
			
		||||
// +build freebsd
 | 
			
		||||
 | 
			
		||||
//
 | 
			
		||||
// godit is a search tool for BSM audit trails used by FreeBSD auditd
 | 
			
		||||
//
 | 
			
		||||
@ -31,27 +33,27 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	version = "0.5.1"
 | 
			
		||||
	version = "5.9.9a"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	randFlag	bool
 | 
			
		||||
	showVersion	bool
 | 
			
		||||
	randFlag    bool
 | 
			
		||||
	showVersion bool
 | 
			
		||||
 | 
			
		||||
	// Default delimiter
 | 
			
		||||
	delimiter	= ","
 | 
			
		||||
	delimiter = ","
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	var flags int
 | 
			
		||||
	var oneLine bool
 | 
			
		||||
	var noUserResolve bool
 | 
			
		||||
	var timestamp bool
 | 
			
		||||
	var json bool
 | 
			
		||||
 | 
			
		||||
	pflag.BoolVarP(&oneLine, "oneline", "l", false, "Prints the entire record on the same line. If this option is not specified, every token is displayed on a different line.")
 | 
			
		||||
	pflag.BoolVarP(&noUserResolve, "numeric", "n", false, "Do not convert user and group IDs to their names but leave in their numeric forms.")
 | 
			
		||||
	pflag.BoolVarP(×tamp, "timestamp", "t", false, "Print unix timestamp instead of formatted date/time.")
 | 
			
		||||
	pflag.BoolVarP(&json, "json", "j", false, "Print compact json")
 | 
			
		||||
	pflag.BoolVarP(&showVersion, "version", "V", false, "Show version then exit")
 | 
			
		||||
 | 
			
		||||
	pflag.Parse()
 | 
			
		||||
@ -60,26 +62,22 @@ func main() {
 | 
			
		||||
		fmt.Printf("Godit v%s\n", version)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if oneLine {
 | 
			
		||||
		flags = flags + PRT_ONELINE
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if noUserResolve {
 | 
			
		||||
		flags = flags + PRT_NORESOLVE_USER
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if timestamp {
 | 
			
		||||
		flags = flags + PRT_TIMESTAMP
 | 
			
		||||
	}
 | 
			
		||||
	if json {
 | 
			
		||||
		flags |= PRT_JSON
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	args := os.Args
 | 
			
		||||
	filename := args[len(args)-1]
 | 
			
		||||
	
 | 
			
		||||
/*	fmt.Printf("Args: %s\n", args)
 | 
			
		||||
	fmt.Printf("Filename: %s\n", filename)
 | 
			
		||||
*/
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	var f *os.File
 | 
			
		||||
	var r *bufio.Reader
 | 
			
		||||
	var err error
 | 
			
		||||
@ -102,7 +100,7 @@ func main() {
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				if err != io.EOF {
 | 
			
		||||
					fmt.Printf("Erreur : %v\n", err)
 | 
			
		||||
				} else {		// v.0.4.2 : Continue on error
 | 
			
		||||
				} else { // v.0.4.2 : Continue on error
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
@ -110,5 +108,3 @@ func main() {
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user