aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-21 22:51:50 +0900
committerOphestra <cat@gensokyo.uk>2026-05-21 22:51:50 +0900
commit564732162223e76a307bb06e132e9f0351f239bf (patch)
tree460a1e42b8fb50d975146e3e29c0c02827d7e43b /internal
parentcdd31dd27b79bf997b73325cf31e8bba66a81117 (diff)
internal/rosa: move azalea builtins
This improves readability. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/builtins.go70
-rw-r--r--internal/rosa/rosa.go63
2 files changed, 70 insertions, 63 deletions
diff --git a/internal/rosa/builtins.go b/internal/rosa/builtins.go
new file mode 100644
index 00000000..78123921
--- /dev/null
+++ b/internal/rosa/builtins.go
@@ -0,0 +1,70 @@
+package rosa
+
+import (
+ "path"
+ "strings"
+
+ "hakurei.app/internal/pkg"
+)
+
+const (
+ // jobsE is expression for preferred job count set by [pkg].
+ jobsE = `"$` + pkg.EnvJobs + `"`
+ // jobsFlagE is expression for flag with preferred job count.
+ jobsFlagE = `"-j$` + pkg.EnvJobs + `"`
+ // jobsLE is expression for twice of preferred job count set by [pkg].
+ jobsLE = `"$(expr ` + jobsE + ` '*' 2)"`
+ // jobsLFlagE is expression for flag with double of preferred job count.
+ jobsLFlagE = `"-j$(expr ` + jobsE + ` '*' 2)"`
+)
+
+// newTar wraps [pkg.NewHTTPGetTar] with a simpler function signature.
+func newTar(url, checksum string, compression uint32) pkg.Artifact {
+ return pkg.NewHTTPGetTar(nil, url, mustDecode(checksum), compression)
+}
+
+// newFromCPAN is a helper for downloading release from CPAN.
+func newFromCPAN(author, name, version, checksum string) pkg.Artifact {
+ return newTar(
+ "https://cpan.metacpan.org/authors/id/"+
+ author[:1]+"/"+author[:2]+"/"+author+"/"+
+ name+"-"+version+".tar.gz",
+ checksum,
+ pkg.TarGzip,
+ )
+}
+
+// newFromGitLab is a helper for downloading source from GitLab.
+func newFromGitLab(domain, suffix, ref, checksum string) pkg.Artifact {
+ return newTar(
+ "https://"+domain+"/"+suffix+"/-/archive/"+
+ ref+"/"+path.Base(suffix)+"-"+
+ strings.ReplaceAll(ref, "/", "-")+".tar.bz2",
+ checksum,
+ pkg.TarBzip2,
+ )
+}
+
+// newFromGitHub is a helper for downloading source from Microsoft Github.
+func newFromGitHub(suffix, tag, checksum string) pkg.Artifact {
+ return newTar(
+ "https://github.com/"+suffix+
+ "/archive/refs/tags/"+tag+".tar.gz",
+ checksum,
+ pkg.TarGzip,
+ )
+}
+
+// newFromGitHubRelease is a helper for downloading release tarball from
+// Microsoft Github.
+func newFromGitHubRelease(
+ suffix, tag, name, checksum string,
+ compression uint32,
+) pkg.Artifact {
+ return newTar(
+ "https://github.com/"+suffix+
+ "/releases/download/"+tag+"/"+name,
+ checksum,
+ compression,
+ )
+}
diff --git a/internal/rosa/rosa.go b/internal/rosa/rosa.go
index 94d827bc..1d363204 100644
--- a/internal/rosa/rosa.go
+++ b/internal/rosa/rosa.go
@@ -5,7 +5,6 @@ import (
"embed"
"io/fs"
"os"
- "path"
"slices"
"strconv"
"strings"
@@ -620,68 +619,6 @@ func (attr *GenericHelper) script(t Toolchain, _ string) string {
return script
}
-const (
- // jobsE is expression for preferred job count set by [pkg].
- jobsE = `"$` + pkg.EnvJobs + `"`
- // jobsFlagE is expression for flag with preferred job count.
- jobsFlagE = `"-j$` + pkg.EnvJobs + `"`
- // jobsLE is expression for twice of preferred job count set by [pkg].
- jobsLE = `"$(expr ` + jobsE + ` '*' 2)"`
- // jobsLFlagE is expression for flag with double of preferred job count.
- jobsLFlagE = `"-j$(expr ` + jobsE + ` '*' 2)"`
-)
-
-// newTar wraps [pkg.NewHTTPGetTar] with a simpler function signature.
-func newTar(url, checksum string, compression uint32) pkg.Artifact {
- return pkg.NewHTTPGetTar(nil, url, mustDecode(checksum), compression)
-}
-
-// newFromCPAN is a helper for downloading release from CPAN.
-func newFromCPAN(author, name, version, checksum string) pkg.Artifact {
- return newTar(
- "https://cpan.metacpan.org/authors/id/"+
- author[:1]+"/"+author[:2]+"/"+author+"/"+
- name+"-"+version+".tar.gz",
- checksum,
- pkg.TarGzip,
- )
-}
-
-// newFromGitLab is a helper for downloading source from GitLab.
-func newFromGitLab(domain, suffix, ref, checksum string) pkg.Artifact {
- return newTar(
- "https://"+domain+"/"+suffix+"/-/archive/"+
- ref+"/"+path.Base(suffix)+"-"+
- strings.ReplaceAll(ref, "/", "-")+".tar.bz2",
- checksum,
- pkg.TarBzip2,
- )
-}
-
-// newFromGitHub is a helper for downloading source from Microsoft Github.
-func newFromGitHub(suffix, tag, checksum string) pkg.Artifact {
- return newTar(
- "https://github.com/"+suffix+
- "/archive/refs/tags/"+tag+".tar.gz",
- checksum,
- pkg.TarGzip,
- )
-}
-
-// newFromGitHubRelease is a helper for downloading release tarball from
-// Microsoft Github.
-func newFromGitHubRelease(
- suffix, tag, name, checksum string,
- compression uint32,
-) pkg.Artifact {
- return newTar(
- "https://github.com/"+suffix+
- "/releases/download/"+tag+"/"+name,
- checksum,
- compression,
- )
-}
-
// native contains natively-implemented and built-in azalea-based [Artifact].
// It is generally recommended to clone this instance for custom [Artifact]
// registrations.