diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-05-19 23:34:21 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-05-19 23:34:21 +0900 |
| commit | f638c73933521e58e7551b46dba8db21ebf7ce19 (patch) | |
| tree | c332387f35c29882bebe0ba8f43f7344f8f2f6bb /internal/rosa/state.go | |
| parent | 98d915af3dbab860bc1ac614a91d0a38555e624d (diff) | |
internal/rosa: bind anitya functions
This is far more scalable than individual fields.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/state.go')
| -rw-r--r-- | internal/rosa/state.go | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/internal/rosa/state.go b/internal/rosa/state.go index 11415daf..2a938064 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -439,6 +439,21 @@ func (s *S) getFrame() azalea.Frame { k("jobsFlagE"): jobsFlagE, k("jobsLE"): jobsLE, k("jobsLFlagE"): jobsLFlagE, + + k("anityaFallback"): (*Versions).getStable, + k("anityaLegacyCPAN"): func(v *Versions) string { + for _, e := range v.Stable { + _, m, ok := strings.Cut(e, ".") + if !ok { + continue + } + if len(m) > 1 && m[0] == '0' { + continue + } + return e + } + return v.Latest + }, } s.frame.Func = map[unique.Handle[azalea.Ident]]azalea.F{ @@ -795,15 +810,13 @@ func (ctx *evalContext) pf( helper Helper inputs, runtimes azalea.Array - - anityaFallback bool - anityaLegacyCPAN bool ) if err = args.Apply(map[unique.Handle[azalea.Ident]]any{ k("description"): &meta.Description, k("website"): &meta.Website, k("version"): &meta.Version, k("anitya"): &anitya, + k("latest"): &meta.latest, k("writable"): &attr.Writable, k("chmod"): &attr.Chmod, @@ -821,9 +834,6 @@ func (ctx *evalContext) pf( k("exec"): &helper, k("inputs"): &inputs, k("runtime"): &runtimes, - - k("anityaFallback"): &anityaFallback, - k("anityaLegacyCPAN"): &anityaLegacyCPAN, }); err != nil { return } @@ -835,24 +845,6 @@ func (ctx *evalContext) pf( } meta.ID = int(anitya) - if anityaFallback { - meta.latest = (*Versions).getStable - } else if anityaLegacyCPAN { - meta.latest = func(v *Versions) string { - for _, s := range v.Stable { - _, m, ok := strings.Cut(s, ".") - if !ok { - continue - } - if len(m) > 1 && m[0] == '0' { - continue - } - return s - } - return v.Latest - } - } - if output != nil { v = cachedArtifact{&meta, output} set = true |
