summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-01-05 01:19:42 -0600
committerJeff Carr <[email protected]>2025-01-05 01:19:42 -0600
commit2c3babe91788270e6c7746b0a87f4976f7945dc0 (patch)
treec476cfd43b7f0683d6e302b89d5797456376af4b
parent7f8cdac6fad06a548997f9bb1fbdc6507836efb0 (diff)
tries to dump some info about a repov0.0.3
-rw-r--r--Makefile5
-rw-r--r--argv.go2
-rw-r--r--main.go13
-rw-r--r--message.go16
-rw-r--r--refs.go47
5 files changed, 64 insertions, 19 deletions
diff --git a/Makefile b/Makefile
index f017f12..6e823cb 100644
--- a/Makefile
+++ b/Makefile
@@ -5,9 +5,10 @@ BUILDTIME = $(shell date +%Y.%m.%d_%H%M)
all: build
build: goimports
- GO111MODULE=off go build -v -x \
+ PKG_CONFIG_PATH=/opt/libgit2/ GO111MODULE=off go build -v -x \
-ldflags "-X main.VERSION=${VERSION} -X main.BUILDTIME=${BUILDTIME} -X gui.GUIVERSION=${VERSION}"
- ./going2git -h
+ ldd going2git
+ ./going2git --refs --repo .
vet:
GO111MODULE=off go vet
diff --git a/argv.go b/argv.go
index 7e968e2..904735d 100644
--- a/argv.go
+++ b/argv.go
@@ -11,7 +11,7 @@ import (
var argv args
type args struct {
- Repo string `arg:"--repo" default:"./" help:"what .git repo to use?"`
+ RepoPath string `arg:"--repo" default:"./" help:"path to the .git repo"`
Hostname string `arg:"--hostname" help:"hostname to use"`
Refs bool `arg:"--refs" help:"list the git ref hashes"`
}
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..02da893
--- /dev/null
+++ b/main.go
@@ -0,0 +1,13 @@
+package main
+
+// are sent via -ldflags at buildtime
+var VERSION string
+var BUILDTIME string
+
+func main() {
+ if argv.Refs {
+ showRefs()
+ } else {
+ testMessage()
+ }
+}
diff --git a/message.go b/message.go
index 7c5954a..00131b5 100644
--- a/message.go
+++ b/message.go
@@ -7,22 +7,6 @@ import (
"go.wit.com/log"
)
-// are sent via -ldflags at buildtime
-var VERSION string
-var BUILDTIME string
-
-func main() {
- if argv.Refs {
- showRefs()
- } else {
- testMessage()
- }
-}
-
-func showRefs() {
- log.Info("how do you do this with libgit2 and git2go? notsure.")
-}
-
func testMessage() {
var input git.Trailer
diff --git a/refs.go b/refs.go
new file mode 100644
index 0000000..8558029
--- /dev/null
+++ b/refs.go
@@ -0,0 +1,47 @@
+package main
+
+import (
+ "fmt"
+ "os"
+
+ git "go.wit.com/lib/libgit2"
+ "go.wit.com/log"
+)
+
+func showRefs() error {
+ log.Info("how do you do this with libgit2 and git2go? notsure.")
+ repo, err := git.OpenRepository(argv.RepoPath)
+ if err != nil {
+ log.Info("open failed", argv.RepoPath, err)
+ return err
+ }
+ ref, err := repo.Head()
+ log.Info("head", ref, err, ref.Name())
+ fmt.Printf("%+v\n", ref)
+ walkRepo(repo)
+ return nil
+}
+
+func walkRepo(repo *git.Repository) {
+ ri, err := repo.NewReferenceIterator()
+ exitIf(err)
+
+ for {
+ ref, err := ri.Next()
+ if err != nil {
+ log.Info("done", err)
+ return
+ }
+ log.Info("head", ref, err, ref.Name(), ref.SymbolicTarget(), ref.Shorthand())
+ // fmt.Printf("%+v\n", ref)
+ // SymbolicTarget()
+ }
+}
+
+func exitIf(err error) {
+ if err == nil {
+ return
+ }
+ log.Info("exit due to error", err)
+ os.Exit(-1)
+}