summaryrefslogtreecommitdiff
path: root/repoType.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-12-04 15:37:31 -0600
committerJeff Carr <[email protected]>2024-12-04 15:37:31 -0600
commit77cd0ae36e79748b56e9bf0964fee677631f9fd0 (patch)
tree7965bc6b2daf204a56d13f1a9ba0a99245115e0c /repoType.go
parent4a64e3a7c292c4976eaa80891ccaff09a62e8dc2 (diff)
always run goimports. misc other changes
Diffstat (limited to 'repoType.go')
-rw-r--r--repoType.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/repoType.go b/repoType.go
new file mode 100644
index 0000000..52846d2
--- /dev/null
+++ b/repoType.go
@@ -0,0 +1,48 @@
+package gitpb
+
+// does processing on the go.mod and go.sum files
+
+import (
+ "os"
+ "strings"
+
+ "go.wit.com/log"
+)
+
+func (repo *Repo) RepoType() string {
+ if repo == nil {
+ return "nil"
+ }
+ if repo.GetGoPlugin() {
+ return "plugin"
+ }
+ if repo.GetGoBinary() {
+ if repo.Exists(".plugin") {
+ return "plugin"
+ }
+ return "binary"
+ }
+ if ok, _, _ := repo.IsProtobuf(); ok {
+ return "protobuf"
+ }
+ if repo.GetGoLibrary() {
+ return "library"
+ }
+ return ""
+}
+
+func (repo *Repo) goListRepoType() string {
+ os.Setenv("GO111MODULE", "off")
+ cmd := []string{"go", "list", "-f", "'{{if eq .Name \"main\"}}binary{{else}}library{{end}}'"}
+ // cmd := []string{"go", "list", "-f", "'{{.Name}}'"} // probably use this. this just prints out the package name
+ // cmd := []string{"go", "list", "-f", "'{{.ImportPath}}'"} // returns go.wit.com/lib/protobuf/gitpb
+
+ result := repo.RunQuiet(cmd)
+ if result.Error != nil {
+ log.Warn("go list binary detect failed", result.Error)
+ return ""
+ }
+ output := strings.TrimSpace(strings.Join(result.Stdout, "\n"))
+ output = strings.Trim(output, "'")
+ return output
+}