github.com/goguardian/glide@v0.0.0-20160311175917-84255172e124/action/list.go (about) 1 package action 2 3 import ( 4 "path/filepath" 5 "sort" 6 7 "github.com/Masterminds/glide/dependency" 8 "github.com/Masterminds/glide/msg" 9 ) 10 11 // List lists all of the dependencies of the current project. 12 // 13 // Params: 14 // - dir (string): basedir 15 // - deep (bool): whether to do a deep scan or a shallow scan 16 func List(basedir string, deep bool) { 17 18 basedir, err := filepath.Abs(basedir) 19 if err != nil { 20 msg.Die("Could not read directory: %s", err) 21 } 22 23 r, err := dependency.NewResolver(basedir) 24 if err != nil { 25 msg.Die("Could not create a resolver: %s", err) 26 } 27 h := &dependency.DefaultMissingPackageHandler{Missing: []string{}, Gopath: []string{}} 28 r.Handler = h 29 30 sortable, err := r.ResolveLocal(deep) 31 if err != nil { 32 msg.Die("Error listing dependencies: %s", err) 33 } 34 35 msg.Info("Sorting...") 36 sort.Strings(sortable) 37 38 msg.Puts("INSTALLED packages:") 39 for _, k := range sortable { 40 v, err := filepath.Rel(basedir, k) 41 if err != nil { 42 //msg.Warn("Failed to Rel path: %s", err) 43 v = k 44 } 45 msg.Puts("\t%s", v) 46 } 47 48 if len(h.Missing) > 0 { 49 msg.Puts("\nMISSING packages:") 50 for _, pkg := range h.Missing { 51 msg.Puts("\t%s", pkg) 52 } 53 } 54 if len(h.Gopath) > 0 { 55 msg.Puts("\nGOPATH packages:") 56 for _, pkg := range h.Gopath { 57 msg.Puts("\t%s", pkg) 58 } 59 } 60 }