diff --git a/cmd/context.go b/cmd/context.go index ee63d10d..3d3578d1 100644 --- a/cmd/context.go +++ b/cmd/context.go @@ -143,7 +143,16 @@ func (context *AptlyContext) Progress() aptly.Progress { // Downloader returns instance of current downloader func (context *AptlyContext) Downloader() aptly.Downloader { if context.downloader == nil { - context.downloader = http.NewDownloader(context.Config().DownloadConcurrency, context.Progress()) + var downloadLimit int64 + limitFlag := context.flags.Lookup("download-limit") + if limitFlag != nil { + downloadLimit = limitFlag.Value.Get().(int64) + } + if downloadLimit == 0 { + downloadLimit = context.Config().DownloadLimit + } + context.downloader = http.NewDownloader(context.Config().DownloadConcurrency, + downloadLimit*1024, context.Progress()) } return context.downloader diff --git a/cmd/mirror_update.go b/cmd/mirror_update.go index 494ed9ca..7498e1a4 100644 --- a/cmd/mirror_update.go +++ b/cmd/mirror_update.go @@ -70,6 +70,7 @@ Example: cmd.Flag.Bool("ignore-checksums", false, "ignore checksum mismatches while downloading package files and metadata") cmd.Flag.Bool("ignore-signatures", false, "disable verification of Release file signatures") + cmd.Flag.Int64("download-limit", 0, "limit download speed (kbytes/sec)") cmd.Flag.Var(&keyRingsFlag{}, "keyring", "gpg keyring to use when verifying Release file (could be specified multiple times)") return cmd diff --git a/man/aptly.1 b/man/aptly.1 index 62398f77..fb83f3ed 100644 --- a/man/aptly.1 +++ b/man/aptly.1 @@ -268,6 +268,10 @@ $ aptly mirror update wheezy\-main Options: . .TP +\-\fBdownload\-limit\fR=0 +limit download speed (kbytes/sec) +. +.TP \-\fBignore\-checksums\fR=false ignore checksum mismatches while downloading package files and metadata .