wip
This commit is contained in:
@@ -1,6 +1,57 @@
|
||||
package workflowdirect
|
||||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
"src.opensuse.org/autogits/common"
|
||||
)
|
||||
|
||||
type OrgLinks struct {
|
||||
Source string // org/pkg
|
||||
Target string // pkg
|
||||
|
||||
SOid, TOid string // source and target oids
|
||||
}
|
||||
|
||||
func FetchProjectLinksFile(org, prj string) ([]byte, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func ParseProjectLinks(data []byte) ([]*OrgLinks, error) {
|
||||
values := make([]*OrgLinks, 0, 100)
|
||||
|
||||
if len(data) == 0 {
|
||||
return values, nil
|
||||
}
|
||||
|
||||
if err := json.Unmarshal(data, &values); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
slices.SortFunc(values, func(a, b *OrgLinks) int {
|
||||
return strings.Compare(a.Target, b.Target)
|
||||
})
|
||||
|
||||
for _, link := range values {
|
||||
if len(link.Source) < 3 {
|
||||
return nil, fmt.Errorf("Invalid Source: %s", link.Source)
|
||||
}
|
||||
source_link := strings.Split(link.Source, "/")
|
||||
if len(source_link) != 2 || len(source_link[0]) < 1 || len(source_link[1]) < 1 {
|
||||
return nil, fmt.Errorf("Invalid Source: %s", link.Source)
|
||||
}
|
||||
if len(link.Target) < 1 {
|
||||
return nil, fmt.Errorf("Missing Target for Source link: %s", link.Source)
|
||||
}
|
||||
}
|
||||
|
||||
return values, nil
|
||||
}
|
||||
|
||||
func (link *OrgLinks) StateUpdater(git common.Git) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user