@@ -57,19 +57,17 @@ const usage = `
5757 /Black(Berry)?/
5858`
5959
60- // Command options.
61- var flags = flag .NewFlagSet ("loggly" , flag .ExitOnError )
62- var count = flags .Bool ("count" , false , "" )
63- var concurrency = flags .Int ("concurrency" , 3 , "" )
64- var versionQuery = flags .Bool ("version" , false , "" )
65- var tui = flags .Bool ("tui" , false , "" )
66- var account = flags .String ("account" , "" , "" )
67- var maxPages = flags .Int64 ("maxPages" , 3 , "" )
68- var token = flags .String ("token" , "" , "" )
69- var size = flags .Int ("size" , 100 , "" )
70- var from = flags .String ("from" , "-24h" , "" )
71- var to = flags .String ("to" , "now" , "" )
72- var allMsg = flags .Bool ("all" , false , "" )
60+ type Config struct {
61+ Account string
62+ Token string
63+ Size int
64+ From string
65+ To string
66+ Count bool
67+ AllMsg bool
68+ MaxPages int64
69+ Concurrency int
70+ }
7371
7472// Print usage and exit.
7573func printUsage () {
@@ -121,9 +119,9 @@ func printLogMSG(events []any) error {
121119 return printJSON (ret )
122120}
123121
124- func execCount (ctx context.Context , query string , from string , to string ) {
125- c := search .New (* account , * token )
126- q := search .NewQuery (query ).Size (1 ).From (from ).To (to )
122+ func execCount (ctx context.Context , config Config , query string ) {
123+ c := search .New (config . Account , config . Token )
124+ q := search .NewQuery (query ).Size (1 ).From (config . From ).To (config . To )
127125 res , err := c .Fetch (ctx , * q )
128126 for {
129127 select {
@@ -140,8 +138,8 @@ func execCount(ctx context.Context, query string, from string, to string) {
140138 }
141139}
142140
143- func printRes (res search.Response ) {
144- if * allMsg {
141+ func printRes (allMsg bool , res search.Response ) {
142+ if allMsg {
145143 check (printJSON (res .Events ))
146144 return
147145 }
@@ -153,15 +151,11 @@ func printRes(res search.Response) {
153151
154152func sendQuery (
155153 ctx context.Context ,
154+ config Config ,
156155 query string ,
157- size int ,
158- from string ,
159- to string ,
160- maxPages int64 ,
161- concurrency int ,
162156) {
163- c := search .New (* account , * token ).SetConcurrency (concurrency )
164- q := search .NewQuery (query ).Size (size ).From (from ).To (to ).MaxPage (maxPages )
157+ c := search .New (config . Account , config . Token ).SetConcurrency (config . Concurrency )
158+ q := search .NewQuery (query ).Size (config . Size ).From (config . From ).To (config . To ).MaxPage (config . MaxPages )
165159 res , err := c .Fetch (ctx , * q )
166160
167161 for {
@@ -170,7 +164,7 @@ func sendQuery(
170164 check (ctx .Err ())
171165 return
172166 case r := <- res :
173- printRes (r )
167+ printRes (config . AllMsg , r )
174168 case e := <- err :
175169 check (e )
176170 return
@@ -179,7 +173,7 @@ func sendQuery(
179173
180174}
181175
182- func warnInvalidFlagPlacement (args []string ) {
176+ func warnInvalidFlagPlacement (flags * flag. FlagSet , args []string ) {
183177 currentFlags := make (map [string ]bool )
184178 flags .VisitAll (func (f * flag.Flag ) {
185179 currentFlags ["-" + f .Name ] = true
@@ -220,6 +214,19 @@ func contextWithInterrupt(ctx context.Context) (context.Context, context.CancelF
220214}
221215
222216func main () {
217+ // Command options.
218+ var flags = flag .NewFlagSet ("loggly" , flag .ExitOnError )
219+ var count = flags .Bool ("count" , false , "" )
220+ var concurrency = flags .Int ("concurrency" , 3 , "" )
221+ var versionQuery = flags .Bool ("version" , false , "" )
222+ var tui = flags .Bool ("tui" , false , "" )
223+ var account = flags .String ("account" , "" , "" )
224+ var maxPages = flags .Int64 ("maxPages" , 3 , "" )
225+ var token = flags .String ("token" , "" , "" )
226+ var size = flags .Int ("size" , 100 , "" )
227+ var from = flags .String ("from" , "-24h" , "" )
228+ var to = flags .String ("to" , "now" , "" )
229+ var allMsg = flags .Bool ("all" , false , "" )
223230 flags .Usage = printUsage
224231 flags .Parse (os .Args [1 :])
225232
@@ -229,7 +236,7 @@ func main() {
229236 }
230237
231238 args := flags .Args ()
232- warnInvalidFlagPlacement (args )
239+ warnInvalidFlagPlacement (flags , args )
233240 warnHighConcurrency (* concurrency )
234241 query := strings .Join (args , " " )
235242 ctx , cancel := contextWithInterrupt (context .Background ())
@@ -238,15 +245,27 @@ func main() {
238245 assert (* account != "" , "-account required" )
239246 assert (* token != "" , "-token required" )
240247
248+ config := Config {
249+ Account : * account ,
250+ Token : * token ,
251+ Size : * size ,
252+ From : * from ,
253+ To : * to ,
254+ Count : * count ,
255+ AllMsg : * allMsg ,
256+ MaxPages : * maxPages ,
257+ Concurrency : * concurrency ,
258+ }
259+
241260 if * tui {
242- runInteractive (ctx , * account , * token , * size , * maxPages , query , * from , * to )
261+ runInteractive (ctx , config , query )
243262 return
244263 }
245264
246265 if * count {
247- execCount (ctx , query , * from , * to )
266+ execCount (ctx , config , query )
248267 return
249268 }
250269
251- sendQuery (ctx , query , * size , * from , * to , * maxPages , * concurrency )
270+ sendQuery (ctx , config , query )
252271}
0 commit comments