mirror of
https://github.com/rocky-linux/srpmproc.git
synced 2024-09-28 21:04:10 +00:00
Add option for fallback module stream
This commit is contained in:
parent
32af526744
commit
6fb0ea1997
@ -42,26 +42,27 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
sourceRpm string
|
sourceRpm string
|
||||||
sshKeyLocation string
|
sshKeyLocation string
|
||||||
sshUser string
|
sshUser string
|
||||||
upstreamPrefix string
|
upstreamPrefix string
|
||||||
version int
|
version int
|
||||||
storageAddr string
|
storageAddr string
|
||||||
gitCommitterName string
|
gitCommitterName string
|
||||||
gitCommitterEmail string
|
gitCommitterEmail string
|
||||||
modulePrefix string
|
modulePrefix string
|
||||||
rpmPrefix string
|
rpmPrefix string
|
||||||
importBranchPrefix string
|
importBranchPrefix string
|
||||||
branchPrefix string
|
branchPrefix string
|
||||||
singleTag string
|
singleTag string
|
||||||
noDupMode bool
|
noDupMode bool
|
||||||
moduleMode bool
|
moduleMode bool
|
||||||
tmpFsMode string
|
tmpFsMode string
|
||||||
noStorageDownload bool
|
noStorageDownload bool
|
||||||
noStorageUpload bool
|
noStorageUpload bool
|
||||||
manualCommits string
|
manualCommits string
|
||||||
upstreamPrefixHttps string
|
upstreamPrefixHttps string
|
||||||
|
moduleFallbackStream string
|
||||||
)
|
)
|
||||||
|
|
||||||
var root = &cobra.Command{
|
var root = &cobra.Command{
|
||||||
@ -145,28 +146,29 @@ func mn(_ *cobra.Command, _ []string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal.ProcessRPM(&data.ProcessData{
|
internal.ProcessRPM(&data.ProcessData{
|
||||||
Importer: importer,
|
Importer: importer,
|
||||||
RpmLocation: sourceRpmLocation,
|
RpmLocation: sourceRpmLocation,
|
||||||
UpstreamPrefix: upstreamPrefix,
|
UpstreamPrefix: upstreamPrefix,
|
||||||
SshKeyLocation: sshKeyLocation,
|
SshKeyLocation: sshKeyLocation,
|
||||||
SshUser: sshUser,
|
SshUser: sshUser,
|
||||||
Version: version,
|
Version: version,
|
||||||
BlobStorage: blobStorage,
|
BlobStorage: blobStorage,
|
||||||
GitCommitterName: gitCommitterName,
|
GitCommitterName: gitCommitterName,
|
||||||
GitCommitterEmail: gitCommitterEmail,
|
GitCommitterEmail: gitCommitterEmail,
|
||||||
ModulePrefix: modulePrefix,
|
ModulePrefix: modulePrefix,
|
||||||
ImportBranchPrefix: importBranchPrefix,
|
ImportBranchPrefix: importBranchPrefix,
|
||||||
BranchPrefix: branchPrefix,
|
BranchPrefix: branchPrefix,
|
||||||
SingleTag: singleTag,
|
SingleTag: singleTag,
|
||||||
Authenticator: authenticator,
|
Authenticator: authenticator,
|
||||||
NoDupMode: noDupMode,
|
NoDupMode: noDupMode,
|
||||||
ModuleMode: moduleMode,
|
ModuleMode: moduleMode,
|
||||||
TmpFsMode: tmpFsMode,
|
TmpFsMode: tmpFsMode,
|
||||||
NoStorageDownload: noStorageDownload,
|
NoStorageDownload: noStorageDownload,
|
||||||
NoStorageUpload: noStorageUpload,
|
NoStorageUpload: noStorageUpload,
|
||||||
ManualCommits: manualCs,
|
ManualCommits: manualCs,
|
||||||
UpstreamPrefixHttps: upstreamPrefixHttps,
|
UpstreamPrefixHttps: upstreamPrefixHttps,
|
||||||
FsCreator: fsCreator,
|
ModuleFallbackStream: moduleFallbackStream,
|
||||||
|
FsCreator: fsCreator,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,6 +198,7 @@ func main() {
|
|||||||
root.Flags().BoolVar(&noStorageUpload, "no-storage-upload", false, "If enabled, blobs are not uploaded to blob storage")
|
root.Flags().BoolVar(&noStorageUpload, "no-storage-upload", false, "If enabled, blobs are not uploaded to blob storage")
|
||||||
root.Flags().StringVar(&manualCommits, "manual-commits", "", "Comma separated branch and commit list for packages with broken release tags (Format: BRANCH:HASH)")
|
root.Flags().StringVar(&manualCommits, "manual-commits", "", "Comma separated branch and commit list for packages with broken release tags (Format: BRANCH:HASH)")
|
||||||
root.Flags().StringVar(&upstreamPrefixHttps, "upstream-prefix-https", "", "Web version of upstream prefix. Required if module-mode")
|
root.Flags().StringVar(&upstreamPrefixHttps, "upstream-prefix-https", "", "Web version of upstream prefix. Required if module-mode")
|
||||||
|
root.Flags().StringVar(&moduleFallbackStream, "module-fallback-stream", "", "Override fallback stream. Some module packages are published as collections and mostly use the same stream name, some of them deviate from the main stream")
|
||||||
|
|
||||||
if err := root.Execute(); err != nil {
|
if err := root.Execute(); err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
|
@ -27,27 +27,28 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type ProcessData struct {
|
type ProcessData struct {
|
||||||
RpmLocation string
|
RpmLocation string
|
||||||
UpstreamPrefix string
|
UpstreamPrefix string
|
||||||
SshKeyLocation string
|
SshKeyLocation string
|
||||||
SshUser string
|
SshUser string
|
||||||
Version int
|
Version int
|
||||||
GitCommitterName string
|
GitCommitterName string
|
||||||
GitCommitterEmail string
|
GitCommitterEmail string
|
||||||
Mode int
|
Mode int
|
||||||
ModulePrefix string
|
ModulePrefix string
|
||||||
ImportBranchPrefix string
|
ImportBranchPrefix string
|
||||||
BranchPrefix string
|
BranchPrefix string
|
||||||
SingleTag string
|
SingleTag string
|
||||||
Authenticator *ssh.PublicKeys
|
Authenticator *ssh.PublicKeys
|
||||||
Importer ImportMode
|
Importer ImportMode
|
||||||
BlobStorage blob.Storage
|
BlobStorage blob.Storage
|
||||||
NoDupMode bool
|
NoDupMode bool
|
||||||
ModuleMode bool
|
ModuleMode bool
|
||||||
TmpFsMode string
|
TmpFsMode string
|
||||||
NoStorageDownload bool
|
NoStorageDownload bool
|
||||||
NoStorageUpload bool
|
NoStorageUpload bool
|
||||||
ManualCommits []string
|
ManualCommits []string
|
||||||
UpstreamPrefixHttps string
|
UpstreamPrefixHttps string
|
||||||
FsCreator func(branch string) billy.Filesystem
|
ModuleFallbackStream string
|
||||||
|
FsCreator func(branch string) billy.Filesystem
|
||||||
}
|
}
|
||||||
|
@ -263,34 +263,45 @@ func patchModuleYaml(pd *data.ProcessData, md *data.ModeData) {
|
|||||||
log.Printf("\t- %s", name)
|
log.Printf("\t- %s", name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defaultBranch := md.PushBranch
|
||||||
|
if pd.ModuleFallbackStream != "" {
|
||||||
|
defaultBranch = fmt.Sprintf("%s%d-stream-%s", pd.BranchPrefix, pd.Version, pd.ModuleFallbackStream)
|
||||||
|
}
|
||||||
|
|
||||||
for name, rpm := range module.Data.Components.Rpms {
|
for name, rpm := range module.Data.Components.Rpms {
|
||||||
var tipHash string
|
var tipHash string
|
||||||
var pushBranch string
|
var pushBranch string
|
||||||
|
|
||||||
split := strings.Split(rpm.Ref, "-")
|
split := strings.Split(rpm.Ref, "-")
|
||||||
// TODO: maybe point to correct release tag? but refer to latest for now,
|
// TODO: maybe point to correct release tag? but refer to latest for now,
|
||||||
// we're bootstrapping a new distro for latest RHEL8 anyways. So earlier
|
// we're bootstrapping a new distro for latest RHEL8 anyways. So earlier
|
||||||
// versions are not that important
|
// versions are not that important
|
||||||
if strings.HasPrefix(rpm.Ref, "stream-rhel-rhel-") {
|
if strings.HasPrefix(rpm.Ref, "stream-rhel-rhel-") {
|
||||||
pushBranch = md.PushBranch
|
pushBranch = defaultBranch
|
||||||
} else if strings.HasPrefix(rpm.Ref, "stream-rhel-") {
|
} else if strings.HasPrefix(rpm.Ref, "stream-rhel-") {
|
||||||
repString := fmt.Sprintf("%s%ss-", pd.BranchPrefix, string(split[4][0]))
|
repString := fmt.Sprintf("%s%ss-", pd.BranchPrefix, string(split[4][0]))
|
||||||
newString := fmt.Sprintf("%s%s-", pd.BranchPrefix, string(split[4][0]))
|
newString := fmt.Sprintf("%s%s-", pd.BranchPrefix, string(split[4][0]))
|
||||||
pushBranch = strings.Replace(md.PushBranch, repString, newString, 1)
|
pushBranch = strings.Replace(md.PushBranch, repString, newString, 1)
|
||||||
} else if strings.HasPrefix(rpm.Ref, "stream-") && len(split) == 2 {
|
} else if strings.HasPrefix(rpm.Ref, "stream-") && len(split) == 2 {
|
||||||
pushBranch = md.PushBranch
|
pushBranch = defaultBranch
|
||||||
} else if strings.HasPrefix(rpm.Ref, "stream-") && len(split) == 3 {
|
} else if strings.HasPrefix(rpm.Ref, "stream-") && len(split) == 3 {
|
||||||
// example: ant
|
// example: ant
|
||||||
pushBranch = fmt.Sprintf("%s%d-stream-%s", pd.BranchPrefix, pd.Version, split[2])
|
pushBranch = fmt.Sprintf("%s%d-stream-%s", pd.BranchPrefix, pd.Version, split[2])
|
||||||
} else if strings.HasPrefix(rpm.Ref, "stream-") {
|
} else if strings.HasPrefix(rpm.Ref, "stream-") {
|
||||||
pushBranch = fmt.Sprintf("%s%s-stream-%s", pd.BranchPrefix, string(split[3][0]), split[1])
|
pushBranch = fmt.Sprintf("%s%s-stream-%s", pd.BranchPrefix, string(split[3][0]), split[1])
|
||||||
} else if strings.HasPrefix(rpm.Ref, "rhel-") {
|
} else if strings.HasPrefix(rpm.Ref, "rhel-") {
|
||||||
pushBranch = md.PushBranch
|
pushBranch = defaultBranch
|
||||||
} else {
|
} else {
|
||||||
log.Fatal("could not recognize modulemd ref")
|
log.Fatal("could not recognize modulemd ref")
|
||||||
}
|
}
|
||||||
|
|
||||||
rpm.Ref = pushBranch
|
rpm.Ref = pushBranch
|
||||||
tipHash = getTipStream(pd, name, pushBranch, md.PushBranch, 0)
|
tipHash = getTipStream(pd, name, pushBranch, md.PushBranch, 0)
|
||||||
|
if tipHash == "0000000000000000000000000000000000000000" {
|
||||||
|
pushBranch = defaultBranch
|
||||||
|
rpm.Ref = pushBranch
|
||||||
|
tipHash = getTipStream(pd, name, pushBranch, md.PushBranch, 0)
|
||||||
|
}
|
||||||
|
|
||||||
err = module.Marshal(md.Worktree.Filesystem, mdTxtPath)
|
err = module.Marshal(md.Worktree.Filesystem, mdTxtPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user