Skip to content

Commit

Permalink
fix: expand
Browse files Browse the repository at this point in the history
  • Loading branch information
caarlos0 committed Oct 17, 2023
1 parent 8798535 commit 318650e
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 7 deletions.
1 change: 1 addition & 0 deletions files/files.go
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ type Content struct {
Type string `yaml:"type,omitempty" json:"type,omitempty" jsonschema:"enum=symlink,enum=ghost,enum=config,enum=config|noreplace,enum=dir,enum=tree,enum=,default="`
Packager string `yaml:"packager,omitempty" json:"packager,omitempty"`
FileInfo *ContentFileInfo `yaml:"file_info,omitempty" json:"file_info,omitempty"`
Expand bool `yaml:"expand,omitempty" json:"expand,omitempty"`
}

type ContentFileInfo struct {
Expand Down
3 changes: 3 additions & 0 deletions nfpm.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,9 @@ func (c *Config) expandEnvVarsStringSlice(items []string) []string {
func (c *Config) expandEnvVarsContents(contents files.Contents) files.Contents {
for i := range contents {
f := contents[i]
if !f.Expand {
continue
}
f.Destination = strings.TrimSpace(os.Expand(f.Destination, c.envMappingFunc))
f.Source = strings.TrimSpace(os.Expand(f.Source, c.envMappingFunc))
}
Expand Down
21 changes: 14 additions & 7 deletions nfpm_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -516,21 +516,28 @@ name: foo
contents:
- src: '${NAME}_${ARCH}'
dst: /usr/bin/${NAME}
expand: true
- src: '${NAME}'
dst: /usr/bin/bar
overrides:
deb:
contents:
- src: '${NAME}_${ARCH}'
dst: /debian/usr/bin/${NAME}
expand: true
`))
require.NoError(t, err)
require.Equal(t, 1, info.Contents.Len())
contentq := info.Contents[0]
require.Equal(t, "/usr/bin/foo", contentq.Destination)
require.Equal(t, "foo_amd64", contentq.Source)
content2 := info.Overrides["deb"].Contents[0]
require.Equal(t, "/debian/usr/bin/foo", content2.Destination)
require.Equal(t, "foo_amd64", content2.Source)
require.Equal(t, 2, info.Contents.Len())
content1 := info.Contents[0]
require.Equal(t, "/usr/bin/foo", content1.Destination)
require.Equal(t, "foo_amd64", content1.Source)
content2 := info.Contents[1]
require.Equal(t, "/usr/bin/bar", content2.Destination)
require.Equal(t, "${NAME}", content2.Source)
content3 := info.Overrides["deb"].Contents[0]
require.Equal(t, "/debian/usr/bin/foo", content3.Destination)
require.Equal(t, "foo_amd64", content3.Source)
})
}

Expand Down

0 comments on commit 318650e

Please sign in to comment.