mirror of
https://github.com/grdl/git-get.git
synced 2026-02-11 19:49:01 +00:00
Add go modules and instructions for static building
This commit is contained in:
30
README.md
30
README.md
@@ -1,2 +1,32 @@
|
|||||||
# git-get
|
# git-get
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
How to build with libgit2 statically linked into a single executable without dependencies:
|
||||||
|
|
||||||
|
- Install development packages for libssh2 and openssl:
|
||||||
|
```
|
||||||
|
sudo apt install libssh2-1-del libssl-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
- `git2go` library is added as a submodule (pointing to a correct v30 release). This, in turn, contains `libgit2` submodule.
|
||||||
|
To ensure the submodules are cloned run:
|
||||||
|
```
|
||||||
|
git submodule update --init --recursive
|
||||||
|
```
|
||||||
|
|
||||||
|
- build the static `git2go` library:
|
||||||
|
```
|
||||||
|
cd static/git2go && make install-static
|
||||||
|
```
|
||||||
|
|
||||||
|
- ensure our `git-get` module uses the static `git2go` library instead of the one downloaded by Go modules by having
|
||||||
|
the following line in `go.mod`:
|
||||||
|
```
|
||||||
|
replace github.com/libgit2/git2go/v30 => ./static/git2go
|
||||||
|
```
|
||||||
|
|
||||||
|
- build `git-get` with `--tags static` flag:
|
||||||
|
```
|
||||||
|
go build -i --tags static
|
||||||
|
```
|
||||||
|
|||||||
22
git-get.go
Normal file
22
git-get.go
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/libgit2/git2go/v30"
|
||||||
|
)
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
options := &git.CloneOptions{
|
||||||
|
CheckoutOpts: nil,
|
||||||
|
FetchOptions: nil,
|
||||||
|
Bare: false,
|
||||||
|
CheckoutBranch: "",
|
||||||
|
RemoteCreateCallback: nil,
|
||||||
|
}
|
||||||
|
|
||||||
|
repo, err := git.Clone("https://gitlab.com/grdl/dotfiles.git", "/tmp/dotfiles/", options)
|
||||||
|
if err != nil {
|
||||||
|
panic(err.Error())
|
||||||
|
}
|
||||||
|
fmt.Println(repo.IsBare())
|
||||||
|
}
|
||||||
8
go.mod
Normal file
8
go.mod
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
module git-get
|
||||||
|
|
||||||
|
go 1.14
|
||||||
|
|
||||||
|
require github.com/libgit2/git2go/v30 v30.0.3
|
||||||
|
|
||||||
|
replace github.com/libgit2/git2go/v30 => ./static/git2go
|
||||||
|
|
||||||
Reference in New Issue
Block a user