forked from rosa/hakurei
This method predates the helper infrastructure, it is awkward to use and difficult to maintain for the replacement bootstrap mechanism. This change prepares for its removal. Signed-off-by: Ophestra <cat@gensokyo.uk>
46 lines
734 B
Go
46 lines
734 B
Go
package rosa
|
|
|
|
import (
|
|
"path"
|
|
"strings"
|
|
|
|
"hakurei.app/internal/pkg"
|
|
)
|
|
|
|
var (
|
|
_git = H("git")
|
|
_nssCACert = H("nss-cacert")
|
|
)
|
|
|
|
// NewViaGit returns a [pkg.Artifact] for cloning a git repository.
|
|
func (t Toolchain) NewViaGit(
|
|
url, rev string,
|
|
checksum pkg.Checksum,
|
|
) pkg.Artifact {
|
|
return t.NewPackage(strings.TrimSuffix(
|
|
path.Base(url),
|
|
".git",
|
|
)+"-src", path.Base(rev), nil, &PackageAttr{
|
|
KnownChecksum: &checksum,
|
|
|
|
Flag: THostNet,
|
|
Paths: []pkg.ExecPath{resolvconf()},
|
|
}, &GenericHelper{
|
|
Build: `
|
|
git \
|
|
-c advice.detachedHead=false \
|
|
clone \
|
|
--depth=1 \
|
|
--revision=` + rev + ` \
|
|
--shallow-submodules \
|
|
--recurse-submodules \
|
|
` + url + ` \
|
|
/work
|
|
rm -rf /work/.git
|
|
`,
|
|
},
|
|
_nssCACert,
|
|
_git,
|
|
)
|
|
}
|