1
1
Fork 0
mirror of https://github.com/goreleaser/nfpm synced 2024-06-18 21:59:24 +02:00

fix: gometalinter

This commit is contained in:
Carlos Alexandro Becker 2018-02-18 18:54:15 -03:00
parent 4486870ddd
commit 4d7ea9700c
No known key found for this signature in database
GPG Key ID: E61E2F7DC14AB940
2 changed files with 15 additions and 14 deletions

View File

@ -75,25 +75,26 @@ func (*RPM) Package(info nfpm.Info, w io.Writer) error {
return errors.Wrap(err, "failed to copy rpm file to writer") return errors.Wrap(err, "failed to copy rpm file to writer")
} }
type version struct { type rpmbuildVersion struct {
Major, Minor, Path int Major, Minor, Path int
} }
func rpmbuildVersion() (version, error) { func getRpmbuildVersion() (rpmbuildVersion, error) {
// #nosec
bts, err := exec.Command("rpmbuild", "--version").CombinedOutput() bts, err := exec.Command("rpmbuild", "--version").CombinedOutput()
if err != nil { if err != nil {
return version{}, errors.Wrap(err, "failed to get rpmbuild version") return rpmbuildVersion{}, errors.Wrap(err, "failed to get rpmbuild version")
} }
var v = make([]int, 3) var v = make([]int, 3)
vs := strings.TrimSuffix(strings.TrimPrefix(string(bts), "RPM version "), "\n") vs := strings.TrimSuffix(strings.TrimPrefix(string(bts), "RPM version "), "\n")
for i, part := range strings.Split(vs, ".")[:3] { for i, part := range strings.Split(vs, ".")[:3] {
pi, err := strconv.Atoi(part) pi, err := strconv.Atoi(part)
if err != nil { if err != nil {
return version{}, errors.Wrapf(err, "could not parse version %s", vs) return rpmbuildVersion{}, errors.Wrapf(err, "could not parse version %s", vs)
} }
v[i] = pi v[i] = pi
} }
return version{ return rpmbuildVersion{
Major: v[0], Major: v[0],
Minor: v[1], Minor: v[1],
Path: v[2], Path: v[2],
@ -101,18 +102,18 @@ func rpmbuildVersion() (version, error) {
} }
func createSpec(info nfpm.Info, path string) error { func createSpec(info nfpm.Info, path string) error {
file, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0655) file, err := os.OpenFile(path, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0600)
if err != nil { if err != nil {
return errors.Wrap(err, "failed to create spec") return errors.Wrap(err, "failed to create spec")
} }
version, err := rpmbuildVersion() vs, err := getRpmbuildVersion()
if err != nil { if err != nil {
return err return err
} }
return writeSpec(file, info, version) return writeSpec(file, info, vs)
} }
func writeSpec(w io.Writer, info nfpm.Info, vs version) error { func writeSpec(w io.Writer, info nfpm.Info, vs rpmbuildVersion) error {
var tmpl = template.New("spec") var tmpl = template.New("spec")
tmpl.Funcs(template.FuncMap{ tmpl.Funcs(template.FuncMap{
"first_line": func(str string) string { "first_line": func(str string) string {

View File

@ -52,10 +52,10 @@ var info = nfpm.WithDefaults(nfpm.Info{
}) })
func TestSpec(t *testing.T) { func TestSpec(t *testing.T) {
for golden, vs := range map[string]version{ for golden, vs := range map[string]rpmbuildVersion{
"testdata/spec_4.14.x.golden": version{4, 14, 2}, "testdata/spec_4.14.x.golden": rpmbuildVersion{4, 14, 2},
"testdata/spec_4.13.x.golden": version{4, 13, 1}, "testdata/spec_4.13.x.golden": rpmbuildVersion{4, 13, 1},
"testdata/spec_4.12.x.golden": version{4, 12, 9}, "testdata/spec_4.12.x.golden": rpmbuildVersion{4, 12, 9},
} { } {
t.Run(golden, func(tt *testing.T) { t.Run(golden, func(tt *testing.T) {
var w bytes.Buffer var w bytes.Buffer
@ -110,7 +110,7 @@ func TestRPMBuildNotInPath(t *testing.T) {
} }
func TestRpmBuildVersion(t *testing.T) { func TestRpmBuildVersion(t *testing.T) {
v, err := rpmbuildVersion() v, err := getRpmbuildVersion()
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, 4, v.Major) assert.Equal(t, 4, v.Major)
assert.True(t, v.Minor >= 11) assert.True(t, v.Minor >= 11)