summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--commands/deploy.go3
-rw-r--r--commands/hugo.go1
-rw-r--r--deploy/deploy.go4
-rw-r--r--docs/content/en/commands/hugo_deploy.md1
4 files changed, 8 insertions, 1 deletions
diff --git a/commands/deploy.go b/commands/deploy.go
index 071e10a6a..3a717201e 100644
--- a/commands/deploy.go
+++ b/commands/deploy.go
@@ -31,6 +31,7 @@ type deployCmd struct {
invalidateCDN bool
maxDeletes int
+ transfers int
}
// TODO: In addition to the "deploy" command, consider adding a "--deploy"
@@ -59,6 +60,7 @@ documentation.
cfgInit := func(c *commandeer) error {
c.Set("invalidateCDN", cc.invalidateCDN)
c.Set("maxDeletes", cc.maxDeletes)
+ c.Set("transfers", cc.transfers)
return nil
}
comm, err := initializeConfig(true, true, false, &cc.hugoBuilderCommon, cc, cfgInit)
@@ -79,6 +81,7 @@ documentation.
cmd.Flags().Bool("force", false, "force upload of all files")
cmd.Flags().BoolVar(&cc.invalidateCDN, "invalidateCDN", true, "invalidate the CDN cache listed in the deployment target")
cmd.Flags().IntVar(&cc.maxDeletes, "maxDeletes", 256, "maximum # of files to delete, or -1 to disable")
+ cmd.Flags().IntVar(&cc.transfers, "transfers", 10, "number of file transfers to run in parallel. defaults to 10")
cc.baseBuilderCmd = b.newBuilderBasicCmd(cmd)
diff --git a/commands/hugo.go b/commands/hugo.go
index 2fa08ec21..156aa35b9 100644
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -236,6 +236,7 @@ func initializeFlags(cmd *cobra.Command, cfg config.Provider) {
"target",
"theme",
"themesDir",
+ "transfers",
"verbose",
"verboseLog",
"duplicateTargetPaths",
diff --git a/deploy/deploy.go b/deploy/deploy.go
index 5675d7aa0..e2a12ca7f 100644
--- a/deploy/deploy.go
+++ b/deploy/deploy.go
@@ -65,6 +65,7 @@ type Deployer struct {
force bool // true forces upload of all files
invalidateCDN bool // true enables invalidate CDN cache (if possible)
maxDeletes int // caps the # of files to delete; -1 to disable
+ transfers int // The number of file transfers to run in parallel
// For tests...
summary deploySummary // summary of latest Deploy results
@@ -118,6 +119,7 @@ func New(cfg config.Provider, localFs afero.Fs) (*Deployer, error) {
force: cfg.GetBool("force"),
invalidateCDN: cfg.GetBool("invalidateCDN"),
maxDeletes: cfg.GetInt("maxDeletes"),
+ transfers: cfg.GetInt("transfers"),
}, nil
}
@@ -189,7 +191,7 @@ func (d *Deployer) Deploy(ctx context.Context) error {
// Apply the changes in parallel, using an inverted worker
// pool (https://www.youtube.com/watch?v=5zXAHh5tJqQ&t=26m58s).
// sem prevents more than nParallel concurrent goroutines.
- const nParallel = 10
+ nParallel := d.transfers
var errs []error
var errMu sync.Mutex // protects errs
diff --git a/docs/content/en/commands/hugo_deploy.md b/docs/content/en/commands/hugo_deploy.md
index 4e1d468b7..c3cb9f68d 100644
--- a/docs/content/en/commands/hugo_deploy.md
+++ b/docs/content/en/commands/hugo_deploy.md
@@ -31,6 +31,7 @@ hugo deploy [flags]
--ignoreVendorPaths string ignores any _vendor for module paths matching the given Glob pattern
--invalidateCDN invalidate the CDN cache listed in the deployment target (default true)
--maxDeletes int maximum # of files to delete, or -1 to disable (default 256)
+ --transfers int number of file transfers to run in parallel (default 10)
-s, --source string filesystem path to read files relative from
--target string target deployment from deployments section in config file; defaults to the first one
--themesDir string filesystem path to themes directory