From d79ebda5cf5804fdd8a3509d7f24abd86d979be5 Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Tue, 27 Sep 2022 14:42:43 +1000 Subject: [PATCH] Fixes for examples/progress-download (#444) --- examples/progress-download/main.go | 31 +++++++++++++++--------------- examples/progress-download/tui.go | 2 +- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/examples/progress-download/main.go b/examples/progress-download/main.go index 601aaec..9da62fc 100644 --- a/examples/progress-download/main.go +++ b/examples/progress-download/main.go @@ -27,9 +27,7 @@ func (pw *progressWriter) Start() { // TeeReader calls pw.Write() each time a new response is received _, err := io.Copy(pw.file, io.TeeReader(pw.reader, pw)) if err != nil { - if p != nil { - p.Send(progressErrMsg{err}) - } + p.Send(progressErrMsg{err}) } } @@ -68,10 +66,17 @@ func main() { } defer resp.Body.Close() + // Don't add TUI if the header doesn't include content size + // it's impossible see progress without total + if resp.ContentLength <= 0 { + fmt.Println("can't parse content length, aborting download") + os.Exit(1) + } + filename := filepath.Base(*url) file, err := os.Create(filename) if err != nil { - fmt.Println("could not create file: ", err) + fmt.Println("could not create file:", err) os.Exit(1) } defer file.Close() @@ -81,9 +86,7 @@ func main() { file: file, reader: resp.Body, onProgress: func(ratio float64) { - if p != nil { - p.Send(progressMsg(ratio)) - } + p.Send(progressMsg(ratio)) }, } @@ -91,18 +94,14 @@ func main() { pw: pw, progress: progress.New(progress.WithDefaultGradient()), } + // Start Bubble Tea + p = tea.NewProgram(m) // Start the download go pw.Start() - // Don't add TUI if the header doesn't include content size - // it's impossible see progress without total - if resp.ContentLength > 0 { - // Start Bubble Tea - p = tea.NewProgram(m) - if err := p.Start(); err != nil { - fmt.Println("error running program:", err) - os.Exit(1) - } + if err := p.Start(); err != nil { + fmt.Println("error running program:", err) + os.Exit(1) } } diff --git a/examples/progress-download/tui.go b/examples/progress-download/tui.go index a9b5c7b..d4f5bf2 100644 --- a/examples/progress-download/tui.go +++ b/examples/progress-download/tui.go @@ -57,7 +57,7 @@ func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { var cmds []tea.Cmd if msg >= 1.0 { - cmds = append(cmds, tea.Sequentially(finalPause(), tea.Quit)) + cmds = append(cmds, tea.Sequence(finalPause(), tea.Quit)) } cmds = append(cmds, m.progress.SetPercent(float64(msg)))