diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-05-18 18:20:17 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-05-18 21:23:19 +0900 |
| commit | 34822925e18cb35e1815d3837a8b55169953d876 (patch) | |
| tree | b623d2ff87dea4b2f9d5b2fc32a78ae135b8d11e /internal/rosa/state.go | |
| parent | 37df040d85e06100c69c6aa3560b2e4ebf977255 (diff) | |
internal/rosa: migrate GNU software
These are quite trivial, so migrate them in one pass.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/state.go')
| -rw-r--r-- | internal/rosa/state.go | 58 |
1 files changed, 55 insertions, 3 deletions
diff --git a/internal/rosa/state.go b/internal/rosa/state.go index b01c4c38..fd363faf 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -382,11 +382,17 @@ func (s *S) getS() []azalea.Frame { return unique.Make(azalea.Ident(name)) } s.s = make([]azalea.Frame, 1, 1<<4) + s.s[0].Val = map[unique.Handle[azalea.Ident]]any{ + k("jobsE"): jobsE, + k("jobsFlagE"): jobsFlagE, + k("jobsLE"): jobsLE, + k("jobsLFlagE"): jobsLFlagE, + } s.s[0].Func = map[unique.Handle[azalea.Ident]]azalea.F{ // intenral/pkg built-ins - unique.Make(azalea.Ident("remoteTar")): {F: func( + k("remoteTar"): {F: func( args azalea.FArgs, ) (v any, set bool, err error) { var url, checksum string @@ -398,7 +404,7 @@ func (s *S) getS() []azalea.Frame { }); err != nil { return } - v = newTar(url, checksum, compress) + v = pkg.NewHTTPGetTar(nil, url, mustDecode(checksum), compress) set = true return }, V: map[unique.Handle[azalea.Ident]]any{ @@ -407,9 +413,43 @@ func (s *S) getS() []azalea.Frame { k("bzip2"): uint32(pkg.TarBzip2), }}, + k("remoteFile"): {F: func( + args azalea.FArgs, + ) (v any, set bool, err error) { + var url, checksum string + if err = args.Apply(map[unique.Handle[azalea.Ident]]any{ + k("url"): &url, + k("checksum"): &checksum, + }); err != nil { + return + } + v = pkg.NewHTTPGet(nil, url, mustDecode(checksum)) + set = true + return + }}, + + // convenience functions + + unique.Make(azalea.Ident("remoteGitLab")): {F: func( + args azalea.FArgs, + ) (v any, set bool, err error) { + var domain, suffix, ref, checksum string + if err = args.Apply(map[unique.Handle[azalea.Ident]]any{ + k("domain"): &domain, + k("suffix"): &suffix, + k("ref"): &ref, + k("checksum"): &checksum, + }); err != nil { + return + } + v = newFromGitLab(domain, suffix, ref, checksum) + set = true + return + }}, + // high-level helpers - unique.Make(azalea.Ident("make")): {F: func( + k("make"): {F: func( args azalea.FArgs, ) (v any, set bool, err error) { var attr MakeHelper @@ -429,6 +469,8 @@ func (s *S) getS() []azalea.Frame { k("skipCheck"): &attr.SkipCheck, k("check"): &attr.Check, k("install"): &attr.Install, + + k("skipEarlyStageCheck"): &attr.SkipCheckEarly, }); err != nil { return } @@ -479,6 +521,8 @@ func (ctx *evalContext) f( var ( attr PackageAttr patches []string + excl bool + early bool anitya int64 version string @@ -501,6 +545,8 @@ func (ctx *evalContext) f( k("env"): &attr.Env, k("early"): &attr.ScriptEarly, k("patches"): &patches, + k("exclusive"): &excl, + k("toyboxEarly"): &early, k("exec"): &helper, k("inputs"): &inputs, @@ -526,6 +572,12 @@ func (ctx *evalContext) f( unsafe.String(unsafe.SliceData(p), len(p)), }) } + if excl { + attr.Flag |= TExclusive + } + if early { + attr.Flag |= TEarly + } meta.ID = int(anitya) meta.f = func(t Toolchain) (pkg.Artifact, string) { |
