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