diff --git a/src/meson.build b/src/meson.build index 364c475..4fea438 100644 --- a/src/meson.build +++ b/src/meson.build @@ -33,6 +33,7 @@ sources = files( 'pkg/utils/libsubid-wrappers.c', 'pkg/utils/arch.go', 'pkg/utils/errors.go', + 'pkg/utils/fedora.go', 'pkg/utils/utils.go', 'pkg/utils/utils_cgo.go', 'pkg/utils/utils_test.go', diff --git a/src/pkg/utils/fedora.go b/src/pkg/utils/fedora.go new file mode 100644 index 0000000..0847c7b --- /dev/null +++ b/src/pkg/utils/fedora.go @@ -0,0 +1,56 @@ +/* + * Copyright © 2021 – 2025 Red Hat Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package utils + +import ( + "strconv" + "strings" + + "github.com/sirupsen/logrus" +) + +func getDefaultReleaseFedora() (string, error) { + release, err := getHostVersionID() + if err != nil { + return "", err + } + + return release, nil +} + +func getFullyQualifiedImageFedora(image, release string) string { + imageFull := "registry.fedoraproject.org/" + image + return imageFull +} + +func parseReleaseFedora(release string) (string, error) { + if strings.HasPrefix(release, "F") || strings.HasPrefix(release, "f") { + release = release[1:] + } + + releaseN, err := strconv.Atoi(release) + if err != nil { + logrus.Debugf("Parsing release %s as an integer failed: %s", release, err) + return "", &ParseReleaseError{"The release must be a positive integer."} + } + + if releaseN <= 0 { + return "", &ParseReleaseError{"The release must be a positive integer."} + } + + return release, nil +} diff --git a/src/pkg/utils/utils.go b/src/pkg/utils/utils.go index a1cd98f..44aab83 100644 --- a/src/pkg/utils/utils.go +++ b/src/pkg/utils/utils.go @@ -328,15 +328,6 @@ func getDefaultReleaseForDistro(distro string) (string, error) { return release, nil } -func getDefaultReleaseFedora() (string, error) { - release, err := getHostVersionID() - if err != nil { - return "", err - } - - return release, nil -} - func getDefaultReleaseRHEL() (string, error) { release, err := getHostVersionID() if err != nil { @@ -415,11 +406,6 @@ func GetFullyQualifiedImageFromDistros(image, release string) (string, error) { return "", fmt.Errorf("failed to resolve image %s", image) } -func getFullyQualifiedImageFedora(image, release string) string { - imageFull := "registry.fedoraproject.org/" + image - return imageFull -} - func getFullyQualifiedImageRHEL(image, release string) string { i := strings.IndexRune(release, '.') if i == -1 { @@ -747,24 +733,6 @@ func parseRelease(distro, release string) (string, error) { return release, err } -func parseReleaseFedora(release string) (string, error) { - if strings.HasPrefix(release, "F") || strings.HasPrefix(release, "f") { - release = release[1:] - } - - releaseN, err := strconv.Atoi(release) - if err != nil { - logrus.Debugf("Parsing release %s as an integer failed: %s", release, err) - return "", &ParseReleaseError{"The release must be a positive integer."} - } - - if releaseN <= 0 { - return "", &ParseReleaseError{"The release must be a positive integer."} - } - - return release, nil -} - func parseReleaseRHEL(release string) (string, error) { if i := strings.IndexRune(release, '.'); i == -1 { return "", &ParseReleaseError{"The release must be in the '.' format."}