feat: add pipx upgrade before run
This commit is contained in:
parent
1a8351b3e5
commit
c6236e2d9e
|
|
@ -25,6 +25,53 @@ type Download struct {
|
||||||
Metadata bool
|
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) {
|
func Youtube(d Download, p config.Provider) {
|
||||||
if p.Bgutil_server != "" && p.Po_token != "" {
|
if p.Bgutil_server != "" && p.Po_token != "" {
|
||||||
log.Fatal("please only provide bgutil_server OR po_token, not both")
|
log.Fatal("please only provide bgutil_server OR po_token, not both")
|
||||||
|
|
|
||||||
4
main.go
4
main.go
|
|
@ -15,6 +15,10 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func run(cfg config.Config) {
|
func run(cfg config.Config) {
|
||||||
|
if err := dl.PipxUpgrade(); err != nil {
|
||||||
|
log.Fatalf("failed to upgrade pipx packages: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
provider := cfg.Provider["youtube"]
|
provider := cfg.Provider["youtube"]
|
||||||
|
|
||||||
opml, err := format.OpmlLoad(provider.Opml_file)
|
opml, err := format.OpmlLoad(provider.Opml_file)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue