From 9be65995ff5f19b949af4e4da8c4c8caf88192cb Mon Sep 17 00:00:00 2001 From: Itxaka Date: Wed, 27 Mar 2024 08:58:03 +0000 Subject: [PATCH] Restore the family value in os-release (#75) --- versioneer/cli.go | 10 +++++++++- versioneer/new_from_json_test.go | 2 ++ versioneer/new_from_os_release_test.go | 2 ++ versioneer/versioneer.go | 6 ++++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/versioneer/cli.go b/versioneer/cli.go index 26b7755..d1122b4 100644 --- a/versioneer/cli.go +++ b/versioneer/cli.go @@ -97,6 +97,13 @@ var ( Usage: "the url where more information about the project can be found", EnvVars: []string{EnvVarHomeURL}, } + + familyFlag *cli.StringFlag = &cli.StringFlag{ + Name: "family", + Value: "", + Usage: "family of the underlying distro (rhel, ubuntu, opensuse, etc...)", + EnvVars: []string{EnvVarFamily}, + } ) func CliCommands() []*cli.Command { @@ -165,7 +172,7 @@ func CliCommands() []*cli.Command { Flags: []cli.Flag{ flavorFlag, flavorReleaseFlag, variantFlag, modelFlag, archFlag, versionFlag, softwareVersionFlag, softwareVersionPrefixFlag, registryAndOrgFlag, bugReportURLFlag, projectHomeURLFlag, - githubRepoFlag, + githubRepoFlag, familyFlag, }, Action: func(cCtx *cli.Context) error { a := artifactFromFlags(cCtx) @@ -190,6 +197,7 @@ func CliCommands() []*cli.Command { func artifactFromFlags(cCtx *cli.Context) Artifact { return Artifact{ Flavor: flavorFlag.Get(cCtx), + Family: familyFlag.Get(cCtx), FlavorRelease: flavorReleaseFlag.Get(cCtx), Variant: variantFlag.Get(cCtx), Model: modelFlag.Get(cCtx), diff --git a/versioneer/new_from_json_test.go b/versioneer/new_from_json_test.go index b1a5fe3..f112911 100644 --- a/versioneer/new_from_json_test.go +++ b/versioneer/new_from_json_test.go @@ -11,6 +11,7 @@ var _ = Describe("NewArtifactFromJSON", func() { jsonStr := `{ "flavor":"opensuse-leap", "flavorRelease":"15.5", + "family":"opensuse", "variant":"standard", "model":"generic", "arch":"amd64", @@ -22,6 +23,7 @@ var _ = Describe("NewArtifactFromJSON", func() { Expect(err).ToNot(HaveOccurred()) Expect(artifact.Flavor).To(Equal("opensuse-leap")) + Expect(artifact.Family).To(Equal("opensuse")) Expect(artifact.FlavorRelease).To(Equal("15.5")) Expect(artifact.Variant).To(Equal("standard")) Expect(artifact.Model).To(Equal("generic")) diff --git a/versioneer/new_from_os_release_test.go b/versioneer/new_from_os_release_test.go index d7a204d..32ae704 100644 --- a/versioneer/new_from_os_release_test.go +++ b/versioneer/new_from_os_release_test.go @@ -20,6 +20,7 @@ var _ = Describe("NewArtifactFromOSRelease", func() { osReleaseContent = "KAIROS_FLAVOR=opensuse\n" + "KAIROS_FLAVOR_RELEASE=leap-15.5\n" + "KAIROS_VARIANT=standard\n" + + "KAIROS_FAMILY=opensuse\n" + "KAIROS_TARGETARCH=amd64\n" + "KAIROS_MODEL=generic\n" + "KAIROS_RELEASE=v2.4.2\n" + @@ -39,6 +40,7 @@ var _ = Describe("NewArtifactFromOSRelease", func() { Expect(err).ToNot(HaveOccurred()) Expect(artifact.Flavor).To(Equal("opensuse")) + Expect(artifact.Family).To(Equal("opensuse")) Expect(artifact.FlavorRelease).To(Equal("leap-15.5")) Expect(artifact.Variant).To(Equal("standard")) Expect(artifact.Model).To(Equal("generic")) diff --git a/versioneer/versioneer.go b/versioneer/versioneer.go index 1f47801..c64ffc5 100644 --- a/versioneer/versioneer.go +++ b/versioneer/versioneer.go @@ -26,10 +26,12 @@ const ( EnvVarGithubRepo = "GITHUB_REPO" EnvVarBugReportURL = "BUG_REPORT_URL" EnvVarHomeURL = "HOME_URL" + EnvVarFamily = "FAMILY" ) type Artifact struct { Flavor string + Family string FlavorRelease string Variant string Model string @@ -59,6 +61,9 @@ func NewArtifactFromOSRelease(file ...string) (*Artifact, error) { if result.Flavor, err = utils.OSRelease(EnvVarFlavor, file...); err != nil { return nil, err } + if result.Family, err = utils.OSRelease(EnvVarFamily, file...); err != nil { + return nil, err + } if result.FlavorRelease, err = utils.OSRelease(EnvVarFlavorRelease, file...); err != nil { return nil, err } @@ -238,6 +243,7 @@ func (a *Artifact) OSReleaseVariables(registryAndOrg, githubRepo, bugURL, homeUR // Actively used variables "KAIROS_FLAVOR": a.Flavor, "KAIROS_FLAVOR_RELEASE": a.FlavorRelease, + "KAIROS_FAMILY": a.Family, "KAIROS_VARIANT": a.Variant, "KAIROS_MODEL": a.Model, "KAIROS_TARGETARCH": a.Arch,