forked from rosa/hakurei
internal/rosa: migrate GNU software
These are quite trivial, so migrate them in one pass. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user