1
1
Fork 0
mirror of https://github.com/goreleaser/nfpm synced 2024-03-28 06:09:55 +01:00

feat: expand environment variables in maintainer (#463)

This commit is contained in:
Ville Skyttä 2022-03-18 05:07:12 +02:00 committed by GitHub
parent 38d54695f1
commit 97486f15f8
Signed by: GitHub
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 9 deletions

View File

@ -159,7 +159,8 @@ func (c *Config) expandEnvVars() {
}
}
// Vendor field
// Maintainer and vendor fields
c.Info.Maintainer = os.Expand(c.Info.Maintainer, c.envMappingFunc)
c.Info.Vendor = os.Expand(c.Info.Vendor, c.envMappingFunc)
// Package signing related fields

View File

@ -237,14 +237,15 @@ func TestParseEnhancedNestedNoGlob(t *testing.T) {
func TestOptionsFromEnvironment(t *testing.T) {
const (
globalPass = "hunter2"
debPass = "password123"
rpmPass = "secret"
apkPass = "foobar"
release = "3"
version = "1.0.0"
vendor = "GoReleaser"
packager = "nope"
globalPass = "hunter2"
debPass = "password123"
rpmPass = "secret"
apkPass = "foobar"
release = "3"
version = "1.0.0"
vendor = "GoReleaser"
packager = "nope"
maintainerEmail = "nope@example.com"
)
t.Run("version", func(t *testing.T) {
@ -263,6 +264,15 @@ func TestOptionsFromEnvironment(t *testing.T) {
require.Equal(t, release, info.Release)
})
t.Run("maintainer", func(t *testing.T) {
os.Clearenv()
os.Setenv("GIT_COMMITTER_NAME", packager)
os.Setenv("GIT_COMMITTER_EMAIL", maintainerEmail)
info, err := nfpm.Parse(strings.NewReader("name: foo\nmaintainer: $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>"))
require.NoError(t, err)
require.Equal(t, fmt.Sprintf("%s <%s>", packager, maintainerEmail), info.Maintainer)
})
t.Run("vendor", func(t *testing.T) {
os.Clearenv()
os.Setenv("VENDOR", vendor)

View File

@ -55,6 +55,7 @@ section: default
priority: extra
# Maintainer.
# This will expand any env var you set in the field, eg maintainer: ${GIT_COMMITTER_NAME} <${GIT_COMMITTER_EMAIL}>
# Defaults to empty on rpm and apk
# Leaving the 'maintainer' field unset will not be allowed in a future version
maintainer: Carlos Alexandro Becker <root@carlosbecker.com>