refactor: implement a simple progressbar instead of bubbletea
This commit is contained in:
parent
0504d88775
commit
339dba4e13
11 changed files with 104 additions and 116 deletions
80
utils.go
80
utils.go
|
|
@ -2,11 +2,12 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
// "io"
|
||||
"log"
|
||||
// "net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
// "runtime"
|
||||
|
||||
"github.com/charmbracelet/huh"
|
||||
"github.com/schollz/progressbar/v3"
|
||||
|
|
@ -30,36 +31,36 @@ func getSudoPassword() (string, error) {
|
|||
return password, nil
|
||||
}
|
||||
|
||||
func downloadGolang(golangVersion string) error {
|
||||
var link string
|
||||
if runtime.GOARCH == "arm64" {
|
||||
link = "https://go.dev/dl/go" + golangVersion + ".linux-arm64.tar.gz"
|
||||
} else {
|
||||
link = "https://go.dev/dl/go" + golangVersion + ".linux-amd64.tar.gz"
|
||||
}
|
||||
resp, err := http.Get(link)
|
||||
if err != nil {
|
||||
return fmt.Errorf("fehler beim Herunterladen von Go: %v", err)
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
// func downloadGolang(golangVersion string) error {
|
||||
// var link string
|
||||
// if runtime.GOARCH == "arm64" {
|
||||
// link = "https://go.dev/dl/go" + golangVersion + ".linux-arm64.tar.gz"
|
||||
// } else {
|
||||
// link = "https://go.dev/dl/go" + golangVersion + ".linux-amd64.tar.gz"
|
||||
// }
|
||||
// resp, err := http.Get(link)
|
||||
// if err != nil {
|
||||
// return fmt.Errorf("fehler beim Herunterladen von Go: %v", err)
|
||||
// }
|
||||
// defer resp.Body.Close()
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
return fmt.Errorf("unerwarteter HTTP-Status: %s", resp.Status)
|
||||
}
|
||||
// if resp.StatusCode != http.StatusOK {
|
||||
// return fmt.Errorf("unerwarteter HTTP-Status: %s", resp.Status)
|
||||
// }
|
||||
|
||||
outFile, err := os.Create("go" + golangVersion + ".linux-" + runtime.GOARCH + ".tar.gz")
|
||||
if err != nil {
|
||||
return fmt.Errorf("fehler beim Erstellen der Ausgabedatei: %v", err)
|
||||
}
|
||||
defer outFile.Close()
|
||||
// outFile, err := os.Create("go" + golangVersion + ".linux-" + runtime.GOARCH + ".tar.gz")
|
||||
// if err != nil {
|
||||
// return fmt.Errorf("fehler beim Erstellen der Ausgabedatei: %v", err)
|
||||
// }
|
||||
// defer outFile.Close()
|
||||
|
||||
_, err = io.Copy(outFile, resp.Body)
|
||||
if err != nil {
|
||||
return fmt.Errorf("fehler beim Schreiben der Ausgabedatei: %v", err)
|
||||
}
|
||||
// _, err = io.Copy(outFile, resp.Body)
|
||||
// if err != nil {
|
||||
// return fmt.Errorf("fehler beim Schreiben der Ausgabedatei: %v", err)
|
||||
// }
|
||||
|
||||
return nil
|
||||
}
|
||||
// return nil
|
||||
// }
|
||||
|
||||
func max(a, b int) int {
|
||||
if a > b {
|
||||
|
|
@ -68,15 +69,15 @@ func max(a, b int) int {
|
|||
return b
|
||||
}
|
||||
|
||||
func installPackageWithProgress(name string, installFunc func() error) error {
|
||||
err := installFunc()
|
||||
if err != nil {
|
||||
fmt.Printf("\r❌ %s\n", name)
|
||||
return err
|
||||
}
|
||||
fmt.Printf("\r✓ %s\n", name)
|
||||
return nil
|
||||
}
|
||||
// func installPackageWithProgress(name string, installFunc func() error) error {
|
||||
// err := installFunc()
|
||||
// if err != nil {
|
||||
// fmt.Printf("\r❌ %s\n", name)
|
||||
// return err
|
||||
// }
|
||||
// fmt.Printf("\r✓ %s\n", name)
|
||||
// return nil
|
||||
// }
|
||||
|
||||
func executeShellCommand(command string, env string) error {
|
||||
cmd := exec.Command("bash", "-c", command)
|
||||
|
|
@ -92,10 +93,9 @@ func executeShellCommand(command string, env string) error {
|
|||
func installWithProgress(manager PackageManager, packages []string) error {
|
||||
bar := progressbar.Default(int64(len(packages)), "Installiere "+manager.Name()+"-Pakete...")
|
||||
for _, pkg := range packages {
|
||||
// fmt.Printf("Installing %s...\n", pkg)
|
||||
err := manager.InstallPackage(pkg)
|
||||
if err != nil {
|
||||
fmt.Printf("Error installing %s: %v\n", pkg, err)
|
||||
log.Printf("\nError installing %s: %v\n", pkg, err)
|
||||
}
|
||||
bar.Add(1)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue