Move the code for Fedora support into its own file

This will reduce the size of the src/pkg/utils/utils.go file and make it
easier to specify which part of the code base is maintained by whom.

https://github.com/containers/toolbox/pull/1639
This commit is contained in:
Debarshi Ray 2025-05-06 02:03:05 +02:00
parent f9ebd5195b
commit ab76cbca67
3 changed files with 57 additions and 32 deletions

View File

@ -33,6 +33,7 @@ sources = files(
'pkg/utils/libsubid-wrappers.c', 'pkg/utils/libsubid-wrappers.c',
'pkg/utils/arch.go', 'pkg/utils/arch.go',
'pkg/utils/errors.go', 'pkg/utils/errors.go',
'pkg/utils/fedora.go',
'pkg/utils/utils.go', 'pkg/utils/utils.go',
'pkg/utils/utils_cgo.go', 'pkg/utils/utils_cgo.go',
'pkg/utils/utils_test.go', 'pkg/utils/utils_test.go',

56
src/pkg/utils/fedora.go Normal file
View File

@ -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
}

View File

@ -328,15 +328,6 @@ func getDefaultReleaseForDistro(distro string) (string, error) {
return release, nil return release, nil
} }
func getDefaultReleaseFedora() (string, error) {
release, err := getHostVersionID()
if err != nil {
return "", err
}
return release, nil
}
func getDefaultReleaseRHEL() (string, error) { func getDefaultReleaseRHEL() (string, error) {
release, err := getHostVersionID() release, err := getHostVersionID()
if err != nil { if err != nil {
@ -415,11 +406,6 @@ func GetFullyQualifiedImageFromDistros(image, release string) (string, error) {
return "", fmt.Errorf("failed to resolve image %s", image) 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 { func getFullyQualifiedImageRHEL(image, release string) string {
i := strings.IndexRune(release, '.') i := strings.IndexRune(release, '.')
if i == -1 { if i == -1 {
@ -747,24 +733,6 @@ func parseRelease(distro, release string) (string, error) {
return release, err 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) { func parseReleaseRHEL(release string) (string, error) {
if i := strings.IndexRune(release, '.'); i == -1 { if i := strings.IndexRune(release, '.'); i == -1 {
return "", &ParseReleaseError{"The release must be in the '<major>.<minor>' format."} return "", &ParseReleaseError{"The release must be in the '<major>.<minor>' format."}