go-learn/check-versions.go

48 lines
1.0 KiB
Go
Raw Normal View History

2021-03-08 17:50:01 +00:00
package main
import (
"fmt"
"os/exec"
"strings"
)
2021-03-10 11:19:50 +00:00
func execute(cmdstr string) (string, error) {
cmdargs := strings.Split(cmdstr, " ") // string arrayified
cmd := cmdargs[0] // command
2021-03-08 17:50:01 +00:00
cmdargs = append(cmdargs[:0], cmdargs[1:]...) // argument array sans cmd
out, err := exec.Command(cmd, cmdargs...).CombinedOutput()
2021-03-10 11:19:50 +00:00
return string(out[:]), err
2021-03-08 17:50:01 +00:00
}
func main() {
2021-03-10 11:19:50 +00:00
gitver, _ := execute("git --version")
2021-03-09 09:39:30 +00:00
verno := strings.Split(gitver, " ")[2]
fmt.Println(verno)
2021-03-08 22:43:59 +00:00
2021-03-10 11:19:50 +00:00
gcnf, _ := execute("git config -l")
2021-03-08 22:43:59 +00:00
config := strings.Split(gcnf, "\n")
for i, v := range config {
entry := strings.Split(v, "=")
if len(entry) < 2 {
continue
}
key := entry[0]
val := entry[1]
fmt.Printf("%d: %s = '%s' \n", i, key, val)
}
2021-03-10 11:19:50 +00:00
glog, _ := execute("git log --oneline")
2021-03-08 22:43:59 +00:00
logarray := strings.Split(glog, "\n")
for _, v := range logarray {
entryarray := strings.SplitN(v, " ", 2)
if len(entryarray) < 2 {
continue
}
commitid := entryarray[0]
reason := entryarray[1]
fmt.Println(commitid, reason)
}
2021-03-08 17:50:01 +00:00
}