This commit is contained in:
Shaygan Hooshyari 2026-03-26 13:14:00 +01:00 committed by GitHub
commit 64ff8334ea
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 13 additions and 1 deletions

View file

@ -67,6 +67,11 @@ type Config struct {
// the Packer run, but realize that there are situations where this may be
// unavoidable.
Generated bool `mapstructure:"generated" required:"false"`
// A list of files or directories to exclude from the upload. This is
// useful if you have a directory with many files and you only want to
// upload a few of them. This only works if you are uploading a directory
// and not a single file.
Excludes []string `mapstructure:"excludes" required:"false"`
ctx interpolate.Context
}
@ -227,7 +232,7 @@ func (p *Provisioner) ProvisionUpload(ui packersdk.Ui, comm packersdk.Communicat
// If we're uploading a directory, short circuit and do that
if info.IsDir() {
if err = comm.UploadDir(dst, src, nil); err != nil {
if err = comm.UploadDir(dst, src, p.config.Excludes); err != nil {
ui.Error(fmt.Sprintf("Upload failed: %s", err))
return err
}

View file

@ -24,6 +24,7 @@ type FlatConfig struct {
Destination *string `mapstructure:"destination" required:"true" cty:"destination" hcl:"destination"`
Direction *string `mapstructure:"direction" required:"false" cty:"direction" hcl:"direction"`
Generated *bool `mapstructure:"generated" required:"false" cty:"generated" hcl:"generated"`
Excludes []string `mapstructure:"excludes" required:"false" cty:"excludes" hcl:"excludes"`
}
// FlatMapstructure returns a new FlatConfig.
@ -52,6 +53,7 @@ func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec {
"destination": &hcldec.AttrSpec{Name: "destination", Type: cty.String, Required: false},
"direction": &hcldec.AttrSpec{Name: "direction", Type: cty.String, Required: false},
"generated": &hcldec.AttrSpec{Name: "generated", Type: cty.Bool, Required: false},
"excludes": &hcldec.AttrSpec{Name: "excludes", Type: cty.List(cty.String), Required: false},
}
return s
}

View file

@ -18,4 +18,9 @@
the Packer run, but realize that there are situations where this may be
unavoidable.
- `excludes` ([]string) - A list of files or directories to exclude from the upload. This is
useful if you have a directory with many files and you only want to
upload a few of them. This only works if you are uploading a directory
and not a single file.
<!-- End of code generated from the comments of the Config struct in provisioner/file/provisioner.go; -->