Golang download manager package.
$ go get github.com/blacktop/go-download
package main
import (
"context"
"log/slog"
"os"
"os/signal"
"syscall"
"github.com/blacktop/go-download"
)
func main() {
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
defer stop()
log := slog.NewJSONHandler(os.Stdout, nil)
mgr, err := download.New(&download.Config{
Context: ctx,
Logger: log,
Progress: true,
Parts: 4,
})
if err != nil {
log.Error(err.Error())
os.Exit(1)
}
if err := mgr.Get(os.Args[1]); err != nil {
log.Error(err.Error())
os.Exit(1)
}
}
MIT Copyright (c) 2024 blacktop