From 3f7b8b43327805a674897ace49d738120232cc0b Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 6 Feb 2026 21:10:59 +0900 Subject: [PATCH] internal/rosa/git: git clone helper For obtaining sources of projects that stubbornly refuse to provide release tarballs. Signed-off-by: Ophestra --- internal/rosa/git.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/internal/rosa/git.go b/internal/rosa/git.go index 1cdc163..0153f54 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()) +}