aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-02-06 21:10:59 +0900
committerOphestra <cat@gensokyo.uk>2026-02-06 21:10:59 +0900
commit3f7b8b43327805a674897ace49d738120232cc0b (patch)
tree10ca7bdb1062279fbfe8db53d0697d4ba62acd0e
parentfa94155f42912f68ea1709f432be6d3d552739ca (diff)
internal/rosa/git: git clone helper
For obtaining sources of projects that stubbornly refuse to provide release tarballs. Signed-off-by: Ophestra <cat@gensokyo.uk>
-rw-r--r--internal/rosa/git.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/internal/rosa/git.go b/internal/rosa/git.go
index 1cdc163e..0153f547 100644
--- a/internal/rosa/git.go
+++ b/internal/rosa/git.go
@@ -76,3 +76,26 @@ make \
)
}
func init() { artifactsF[Git] = Toolchain.newGit }
+
+// NewViaGit returns a [pkg.Artifact] for cloning a git repository.
+func (t Toolchain) NewViaGit(
+ name, url, rev string,
+ checksum pkg.Checksum,
+) pkg.Artifact {
+ return t.New(name+"-"+rev, 0, []pkg.Artifact{
+ t.Load(NSSCACert),
+ t.Load(OpenSSL),
+ t.Load(Libpsl),
+ t.Load(Curl),
+ t.Load(Libexpat),
+ t.Load(Git),
+ }, &checksum, nil, `
+git \
+ -c advice.detachedHead=false \
+ clone \
+ --revision=`+rev+` \
+ `+url+` \
+ /work
+rm -rf /work/.git
+`, resolvconf())
+}