...

Source file src/pkg/cmd/go/internal/modinfo/info.go

     1	// Copyright 2018 The Go Authors. All rights reserved.
     2	// Use of this source code is governed by a BSD-style
     3	// license that can be found in the LICENSE file.
     4	
     5	package modinfo
     6	
     7	import "time"
     8	
     9	// Note that these structs are publicly visible (part of go list's API)
    10	// and the fields are documented in the help text in ../list/list.go
    11	
    12	type ModulePublic struct {
    13		Path      string        `json:",omitempty"` // module path
    14		Version   string        `json:",omitempty"` // module version
    15		Versions  []string      `json:",omitempty"` // available module versions
    16		Replace   *ModulePublic `json:",omitempty"` // replaced by this module
    17		Time      *time.Time    `json:",omitempty"` // time version was created
    18		Update    *ModulePublic `json:",omitempty"` // available update (with -u)
    19		Main      bool          `json:",omitempty"` // is this the main module?
    20		Indirect  bool          `json:",omitempty"` // module is only indirectly needed by main module
    21		Dir       string        `json:",omitempty"` // directory holding local copy of files, if any
    22		GoMod     string        `json:",omitempty"` // path to go.mod file describing module, if any
    23		GoVersion string        `json:",omitempty"` // go version used in module
    24		Error     *ModuleError  `json:",omitempty"` // error loading module
    25	}
    26	
    27	type ModuleError struct {
    28		Err string // error text
    29	}
    30	
    31	func (m *ModulePublic) String() string {
    32		s := m.Path
    33		if m.Version != "" {
    34			s += " " + m.Version
    35			if m.Update != nil {
    36				s += " [" + m.Update.Version + "]"
    37			}
    38		}
    39		if m.Replace != nil {
    40			s += " => " + m.Replace.Path
    41			if m.Replace.Version != "" {
    42				s += " " + m.Replace.Version
    43				if m.Replace.Update != nil {
    44					s += " [" + m.Replace.Update.Version + "]"
    45				}
    46			}
    47		}
    48		return s
    49	}
    50	

View as plain text