summaryrefslogtreecommitdiff
path: root/libgo/go/cmd/go/internal/modinfo/info.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/cmd/go/internal/modinfo/info.go')
-rw-r--r--libgo/go/cmd/go/internal/modinfo/info.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/libgo/go/cmd/go/internal/modinfo/info.go b/libgo/go/cmd/go/internal/modinfo/info.go
new file mode 100644
index 00000000000..7341ce44d20
--- /dev/null
+++ b/libgo/go/cmd/go/internal/modinfo/info.go
@@ -0,0 +1,49 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package modinfo
+
+import "time"
+
+// Note that these structs are publicly visible (part of go list's API)
+// and the fields are documented in the help text in ../list/list.go
+
+type ModulePublic struct {
+ Path string `json:",omitempty"` // module path
+ Version string `json:",omitempty"` // module version
+ Versions []string `json:",omitempty"` // available module versions
+ Replace *ModulePublic `json:",omitempty"` // replaced by this module
+ Time *time.Time `json:",omitempty"` // time version was created
+ Update *ModulePublic `json:",omitempty"` // available update (with -u)
+ Main bool `json:",omitempty"` // is this the main module?
+ Indirect bool `json:",omitempty"` // module is only indirectly needed by main module
+ Dir string `json:",omitempty"` // directory holding local copy of files, if any
+ GoMod string `json:",omitempty"` // path to go.mod file describing module, if any
+ Error *ModuleError `json:",omitempty"` // error loading module
+ GoVersion string `json:",omitempty"` // go version used in module
+}
+
+type ModuleError struct {
+ Err string // error text
+}
+
+func (m *ModulePublic) String() string {
+ s := m.Path
+ if m.Version != "" {
+ s += " " + m.Version
+ if m.Update != nil {
+ s += " [" + m.Update.Version + "]"
+ }
+ }
+ if m.Replace != nil {
+ s += " => " + m.Replace.Path
+ if m.Replace.Version != "" {
+ s += " " + m.Replace.Version
+ if m.Replace.Update != nil {
+ s += " [" + m.Replace.Update.Version + "]"
+ }
+ }
+ }
+ return s
+}