1package main
2
3import (
4 "os"
5
6 "github.com/go-git/go-git/v5"
7 . "github.com/go-git/go-git/v5/_examples"
8)
9
10func main() {
11 CheckArgs("<url>", "<sparse_path>", "<directory>")
12 url := os.Args[1]
13 path := os.Args[2]
14 directory := os.Args[3]
15
16 Info("git clone %s %s", url, directory)
17
18 r, err := git.PlainClone(directory, false, &git.CloneOptions{
19 URL: url,
20 NoCheckout: true,
21 })
22 CheckIfError(err)
23
24 w, err := r.Worktree()
25 CheckIfError(err)
26
27 err = w.Checkout(&git.CheckoutOptions{
28 SparseCheckoutDirectories: []string{path},
29 })
30 CheckIfError(err)
31}