aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-04-19 15:22:18 +0900
committerOphestra <cat@gensokyo.uk>2026-04-19 15:22:18 +0900
commit9fd67e47b4433168ac8ab49fce7a60876333f4bb (patch)
tree4542928bc6c92829a88edcf43d6f7bb0a0ce8360
parent4dcec401564b42c8ab581cdea93f092e105d69a4 (diff)
internal/rosa/python: wrap python package
Metadata for this is somewhat boilerplate-heavy, so wrap it to create metadata in one call. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/rosa/python.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/internal/rosa/python.go b/internal/rosa/python.go
index cfd2a22f..88c04628 100644
--- a/internal/rosa/python.go
+++ b/internal/rosa/python.go
@@ -137,6 +137,31 @@ pip3 install \
` + script
}
+// newPythonPackage creates [Metadata] for a [Python] package.
+func newPythonPackage(
+ name string, id int, description, website, version string,
+ source pkg.Artifact, attrP *PackageAttr, attr *PipHelper,
+ dependencies P, extra ...PArtifact,
+) Metadata {
+ name = "python-" + name
+ if dependencies == nil {
+ dependencies = slices.Concat(P{Python}, extra)
+ }
+ return Metadata{
+ f: func(t Toolchain) (pkg.Artifact, string) {
+ return t.NewPackage(name, version, source, attrP, attr, extra...), version
+ },
+
+ Name: name,
+ Description: description,
+ Website: website,
+
+ Dependencies: dependencies,
+
+ ID: id,
+ }
+}
+
// newViaPip installs a pip wheel from a url.
func (t Toolchain) newViaPip(
name, version, url, checksum string,