feat: add pipx upgrade before run

This commit is contained in:
Viktor Varland 2025-09-30 09:09:23 +02:00
parent 1a8351b3e5
commit c6236e2d9e
Signed by: varl
GPG key ID: 7459F0B410115EE8
2 changed files with 51 additions and 0 deletions

View file

@ -25,6 +25,53 @@ type Download struct {
Metadata bool
}
func PipxUpgrade() error {
cmd := exec.Command("pipx", "upgrade-all")
stdout, err := cmd.StdoutPipe()
if err != nil {
return fmt.Errorf("pipx upgrade stdout: %w", err)
}
stderr, err := cmd.StderrPipe()
if err != nil {
return fmt.Errorf("pipx upgrade stderr: %w", err)
}
log.Println("[pipx] running pipx upgrade-all")
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
scanner := bufio.NewScanner(stdout)
for scanner.Scan() {
log.Printf("[pipx] %s\n", scanner.Text())
}
}()
go func() {
defer wg.Done()
scanner := bufio.NewScanner(stderr)
for scanner.Scan() {
log.Printf("[pipx] %s\n", scanner.Text())
}
}()
if err := cmd.Start(); err != nil {
return fmt.Errorf("pipx upgrade start: %w", err)
}
wg.Wait()
if err := cmd.Wait(); err != nil {
return fmt.Errorf("pipx upgrade failed: %w", err)
}
return nil
}
func Youtube(d Download, p config.Provider) {
if p.Bgutil_server != "" && p.Po_token != "" {
log.Fatal("please only provide bgutil_server OR po_token, not both")

View file

@ -15,6 +15,10 @@ import (
)
func run(cfg config.Config) {
if err := dl.PipxUpgrade(); err != nil {
log.Fatalf("failed to upgrade pipx packages: %v", err)
}
provider := cfg.Provider["youtube"]
opml, err := format.OpmlLoad(provider.Opml_file)