Skip to content

Commit e015a55

Browse files
Merge pull request goadapp#171 from cwaltken-edrans/remove_tty_dependency
goadapp#118 Only use termbox if tty available
2 parents 32a01c8 + 0db284b commit e015a55

File tree

1 file changed

+39
-32
lines changed

1 file changed

+39
-32
lines changed

cli/cli.go

Lines changed: 39 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -294,25 +294,28 @@ func start(test *types.TestConfig, sigChan chan os.Signal) result.LambdaResults
294294
}
295295
launchingOn := fmt.Sprintf("Launching on %s... (be patient)", platform)
296296

297-
termbox.Init()
298-
defer termbox.Close()
299-
termbox.Sync()
300-
renderString(0, 0, launchingOn, coldef, coldef)
301-
renderLogo()
302-
termbox.Flush()
303-
304-
_, h := termbox.Size()
305-
renderString(0, h-1, "Press ctrl-c to interrupt", coldef, coldef)
306-
termbox.Flush()
307-
308-
go func() {
309-
for {
310-
event := termbox.PollEvent()
311-
if event.Key == 3 {
312-
sigChan <- syscall.SIGINT
297+
var render bool
298+
err := termbox.Init()
299+
if err == nil {
300+
render = true
301+
defer termbox.Close()
302+
termbox.Sync()
303+
renderString(0, 0, launchingOn, coldef, coldef)
304+
renderLogo()
305+
termbox.Flush()
306+
307+
_, h := termbox.Size()
308+
renderString(0, h-1, "Press ctrl-c to interrupt", coldef, coldef)
309+
termbox.Flush()
310+
go func() {
311+
for {
312+
event := termbox.PollEvent()
313+
if event.Key == 3 {
314+
sigChan <- syscall.SIGINT
315+
}
313316
}
314-
}
315-
}()
317+
}()
318+
}
316319

317320
startTime := time.Now()
318321
firstTime := true
@@ -324,30 +327,34 @@ outer:
324327
break outer
325328
}
326329
currentResult = *result
327-
if firstTime {
330+
if firstTime && render {
328331
clearLogo()
329332
firstTime = false
330333
}
331334

332335
y := 3
333336
totalReqs := 0
334337
regionsData := currentResult.RegionsData()
335-
for _, region := range currentResult.Regions() {
336-
totalReqs += regionsData[region].TotalReqs
337-
y = renderRegion(regionsData[region], y)
338-
y++
338+
if render {
339+
for _, region := range currentResult.Regions() {
340+
totalReqs += regionsData[region].TotalReqs
341+
y = renderRegion(regionsData[region], y)
342+
y++
343+
}
339344
}
340345

341-
y = 0
342-
var percentDone float64
343-
if test.Requests > 0 {
344-
percentDone = float64(totalReqs) / float64(test.Requests)
345-
} else {
346-
percentDone = math.Min(float64(time.Since(startTime).Seconds())/float64(test.Timelimit), 1.0)
346+
if render {
347+
y = 0
348+
var percentDone float64
349+
if test.Requests > 0 {
350+
percentDone = float64(totalReqs) / float64(test.Requests)
351+
} else {
352+
percentDone = math.Min(float64(time.Since(startTime).Seconds())/float64(test.Timelimit), 1.0)
353+
}
354+
drawProgressBar(percentDone, y)
355+
356+
termbox.Flush()
347357
}
348-
drawProgressBar(percentDone, y)
349-
350-
termbox.Flush()
351358

352359
case <-sigChan:
353360
break outer

0 commit comments

Comments
 (0)