1
0
woodpecker-sonatype-nexus/nexus/upload_spec/fallback.go
2024-05-28 14:41:14 +03:00

129 lines
2.0 KiB
Go

// SPDX-License-Identifier: Apache-2.0
// (c) 2024, Konstantin Demin
package upload_spec
import (
f "git.krd.sh/krd/woodpecker-sonatype-nexus/nexus/upload_spec/field"
ftype "git.krd.sh/krd/woodpecker-sonatype-nexus/nexus/upload_spec/field_type"
)
var (
// keep map keys sorted
fallbackUploadSpec = map[string]UploadSpec{
"maven2": {
MultipleUpload: true,
ComponentFields: []f.UploadField{
{
Name: "groupId",
Type: ftype.String,
},
{
Name: "artifactId",
Type: ftype.String,
},
{
Name: "version",
Type: ftype.String,
},
{
Name: "generate-pom",
Type: ftype.Boolean,
Optional: true,
},
{
Name: "packaging",
Type: ftype.String,
Optional: true,
},
},
AssetFields: []f.UploadField{
{
Name: "extension",
Type: ftype.String,
},
{
Name: "classifier",
Type: ftype.String,
Optional: true,
},
},
},
"r": {
AssetFields: []f.UploadField{
{
Name: "pathId",
Type: ftype.String,
},
},
},
"raw": {
MultipleUpload: true,
ComponentFields: []f.UploadField{
{
Name: "directory",
Type: ftype.String,
},
},
AssetFields: []f.UploadField{
{
Name: "filename",
Type: ftype.String,
},
},
},
"yum": {
ComponentFields: []f.UploadField{
{
Name: "directory",
Type: ftype.String,
Optional: true,
},
},
AssetFields: []f.UploadField{
{
Name: "filename",
Type: ftype.String,
},
},
},
}
// keep array values sorted
fallbackSimpleSpecs = []string{
"apt",
"docker",
"helm",
"npm",
"nuget",
"pypi",
"rubygems",
}
)
func GetFallbackSpecs() map[string]UploadSpec {
rv := make(map[string]UploadSpec)
for t := range fallbackUploadSpec {
spec := fallbackUploadSpec[t]
spec.Format = t
rv[t] = spec
}
for _, t := range fallbackSimpleSpecs {
_, seen := rv[t]
if seen {
continue
}
rv[t] = UploadSpec{Format: t}
}
return rv
}