Skip to content
This repository was archived by the owner on Sep 9, 2020. It is now read-only.

Commit 4e09d39

Browse files
authored
Merge pull request #544 from jmank88/restore_logging
move Logger into Ctx; restore logging
2 parents a9b7c18 + cbded81 commit 4e09d39

15 files changed

+95
-87
lines changed

analyzer.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ func (a Analyzer) DeriveManifestAndLock(path string, n gps.ProjectRoot) (gps.Man
2727
}
2828
defer f.Close()
2929

30-
m, err := readManifest(f)
30+
// Ignore warnings irrelevant to user.
31+
m, _, err := readManifest(f)
3132
if err != nil {
3233
return nil, nil, err
3334
}

cmd/dep/ensure.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ type ensureCommand struct {
101101
overrides stringSlice
102102
}
103103

104-
func (cmd *ensureCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error {
104+
func (cmd *ensureCommand) Run(ctx *dep.Ctx, args []string) error {
105105
if cmd.examples {
106-
loggers.Err.Println(strings.TrimSpace(ensureExamples))
106+
ctx.Loggers.Err.Println(strings.TrimSpace(ensureExamples))
107107
return nil
108108
}
109109

@@ -120,8 +120,8 @@ func (cmd *ensureCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) err
120120
defer sm.Release()
121121

122122
params := p.MakeParams()
123-
if loggers.Verbose {
124-
params.TraceLogger = loggers.Err
123+
if ctx.Loggers.Verbose {
124+
params.TraceLogger = ctx.Loggers.Err
125125
}
126126
params.RootPackageTree, err = pkgtree.ListPackages(p.AbsRoot, string(p.ImportRoot))
127127
if err != nil {
@@ -135,7 +135,7 @@ func (cmd *ensureCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) err
135135
if cmd.update {
136136
applyUpdateArgs(args, &params)
137137
} else {
138-
err := applyEnsureArgs(loggers.Err, args, cmd.overrides, p, sm, &params)
138+
err := applyEnsureArgs(ctx.Loggers.Err, args, cmd.overrides, p, sm, &params)
139139
if err != nil {
140140
return err
141141
}
@@ -168,7 +168,7 @@ func (cmd *ensureCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) err
168168
return err
169169
}
170170
if cmd.dryRun {
171-
return sw.PrintPreparedActions(loggers.Out)
171+
return sw.PrintPreparedActions(ctx.Loggers.Out)
172172
}
173173

174174
return errors.Wrap(sw.Write(p.AbsRoot, sm, true), "grouped write of manifest, lock and vendor")

cmd/dep/hash_in.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func (cmd *hashinCommand) Register(fs *flag.FlagSet) {}
2323

2424
type hashinCommand struct{}
2525

26-
func (hashinCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error {
26+
func (hashinCommand) Run(ctx *dep.Ctx, args []string) error {
2727
p, err := ctx.LoadProject("")
2828
if err != nil {
2929
return err
@@ -51,6 +51,6 @@ func (hashinCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error {
5151
if err != nil {
5252
return errors.Wrap(err, "prepare solver")
5353
}
54-
loggers.Out.Println(gps.HashingInputsAsString(s))
54+
ctx.Loggers.Out.Println(gps.HashingInputsAsString(s))
5555
return nil
5656
}

cmd/dep/init.go

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func trimPathPrefix(p1, p2 string) string {
5858
return p1
5959
}
6060

61-
func (cmd *initCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error {
61+
func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error {
6262
if len(args) > 1 {
6363
return errors.Errorf("too many args (%d)", len(args))
6464
}
@@ -94,15 +94,15 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error
9494
if err != nil {
9595
return errors.Wrap(err, "determineProjectRoot")
9696
}
97-
if loggers.Verbose {
98-
loggers.Err.Printf("dep: Finding dependencies for %q...\n", cpr)
97+
if ctx.Loggers.Verbose {
98+
ctx.Loggers.Err.Printf("dep: Finding dependencies for %q...\n", cpr)
9999
}
100100
pkgT, err := pkgtree.ListPackages(root, cpr)
101101
if err != nil {
102102
return errors.Wrap(err, "gps.ListPackages")
103103
}
104-
if loggers.Verbose {
105-
loggers.Err.Printf("dep: Found %d dependencies.\n", len(pkgT.Packages))
104+
if ctx.Loggers.Verbose {
105+
ctx.Loggers.Err.Printf("dep: Found %d dependencies.\n", len(pkgT.Packages))
106106
}
107107
sm, err := ctx.SourceManager()
108108
if err != nil {
@@ -111,7 +111,7 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error
111111
sm.UseDefaultSignalHandling()
112112
defer sm.Release()
113113

114-
pd, err := getProjectData(ctx, loggers, pkgT, cpr, sm)
114+
pd, err := getProjectData(ctx, pkgT, cpr, sm)
115115
if err != nil {
116116
return err
117117
}
@@ -144,8 +144,8 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error
144144
}
145145

146146
// Run solver with project versions found on disk
147-
if loggers.Verbose {
148-
loggers.Err.Println("dep: Solving...")
147+
if ctx.Loggers.Verbose {
148+
ctx.Loggers.Err.Println("dep: Solving...")
149149
}
150150
params := gps.SolveParameters{
151151
RootDir: root,
@@ -155,8 +155,8 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error
155155
ProjectAnalyzer: dep.Analyzer{},
156156
}
157157

158-
if loggers.Verbose {
159-
params.TraceLogger = loggers.Err
158+
if ctx.Loggers.Verbose {
159+
params.TraceLogger = ctx.Loggers.Err
160160
}
161161

162162
s, err := gps.Prepare(params, sm)
@@ -190,8 +190,8 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error
190190

191191
l.Memo = s.HashInputs()
192192

193-
if loggers.Verbose {
194-
loggers.Err.Println("dep: Writing manifest and lock files.")
193+
if ctx.Loggers.Verbose {
194+
ctx.Loggers.Err.Println("dep: Writing manifest and lock files.")
195195
}
196196

197197
sw, err := dep.NewSafeWriter(m, nil, l, dep.VendorAlways)
@@ -277,7 +277,7 @@ type projectData struct {
277277
ondisk map[gps.ProjectRoot]gps.Version // projects that were found on disk
278278
}
279279

280-
func getProjectData(ctx *dep.Ctx, loggers *Loggers, pkgT pkgtree.PackageTree, cpr string, sm gps.SourceManager) (projectData, error) {
280+
func getProjectData(ctx *dep.Ctx, pkgT pkgtree.PackageTree, cpr string, sm gps.SourceManager) (projectData, error) {
281281
constraints := make(gps.ProjectConstraints)
282282
dependencies := make(map[gps.ProjectRoot][]string)
283283
packages := make(map[string]bool)
@@ -290,7 +290,7 @@ func getProjectData(ctx *dep.Ctx, loggers *Loggers, pkgT pkgtree.PackageTree, cp
290290
if err := sm.SyncSourceFor(gps.ProjectIdentifier{ProjectRoot: pr}); err != nil {
291291
message = "Unable to cache"
292292
}
293-
loggers.Err.Printf("%s %s\n", message, pr)
293+
ctx.Loggers.Err.Printf("%s %s\n", message, pr)
294294
syncDepGroup.Done()
295295
}
296296

@@ -299,8 +299,8 @@ func getProjectData(ctx *dep.Ctx, loggers *Loggers, pkgT pkgtree.PackageTree, cp
299299
return projectData{}, nil
300300
}
301301

302-
if loggers.Verbose {
303-
loggers.Err.Println("dep: Building dependency graph...")
302+
if ctx.Loggers.Verbose {
303+
ctx.Loggers.Err.Println("dep: Building dependency graph...")
304304
}
305305
// Exclude stdlib imports from the list returned from Flatten().
306306
const omitStdlib = false
@@ -318,16 +318,16 @@ func getProjectData(ctx *dep.Ctx, loggers *Loggers, pkgT pkgtree.PackageTree, cp
318318
syncDepGroup.Add(1)
319319
go syncDep(pr, sm)
320320

321-
if loggers.Verbose {
322-
loggers.Err.Printf("dep: Found import of %q, analyzing...\n", ip)
321+
if ctx.Loggers.Verbose {
322+
ctx.Loggers.Err.Printf("dep: Found import of %q, analyzing...\n", ip)
323323
}
324324

325325
dependencies[pr] = []string{ip}
326326
v, err := ctx.VersionInWorkspace(pr)
327327
if err != nil {
328328
notondisk[pr] = true
329-
if loggers.Verbose {
330-
loggers.Err.Printf("dep: Could not determine version for %q, omitting from generated manifest\n", pr)
329+
if ctx.Loggers.Verbose {
330+
ctx.Loggers.Err.Printf("dep: Could not determine version for %q, omitting from generated manifest\n", pr)
331331
}
332332
continue
333333
}
@@ -336,8 +336,8 @@ func getProjectData(ctx *dep.Ctx, loggers *Loggers, pkgT pkgtree.PackageTree, cp
336336
constraints[pr] = getProjectPropertiesFromVersion(v)
337337
}
338338

339-
if loggers.Verbose {
340-
loggers.Err.Printf("dep: Analyzing transitive imports...\n")
339+
if ctx.Loggers.Verbose {
340+
ctx.Loggers.Err.Printf("dep: Analyzing transitive imports...\n")
341341
}
342342
// Explore the packages we've found for transitive deps, either
343343
// completing the lock or identifying (more) missing projects that we'll
@@ -357,8 +357,8 @@ func getProjectData(ctx *dep.Ctx, loggers *Loggers, pkgT pkgtree.PackageTree, cp
357357
dft = func(pkg string) error {
358358
switch colors[pkg] {
359359
case white:
360-
if loggers.Verbose {
361-
loggers.Err.Printf("dep: Analyzing %q...\n", pkg)
360+
if ctx.Loggers.Verbose {
361+
ctx.Loggers.Err.Printf("dep: Analyzing %q...\n", pkg)
362362
}
363363
colors[pkg] = grey
364364

cmd/dep/loggers.go

Lines changed: 0 additions & 14 deletions
This file was deleted.

cmd/dep/main.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type command interface {
2525
LongHelp() string // "Foo the first bar meeting the following conditions..."
2626
Register(*flag.FlagSet) // command-specific flags
2727
Hidden() bool // indicates whether the command should be hidden from help output
28-
Run(*dep.Ctx, *Loggers, []string) error
28+
Run(*dep.Ctx, []string) error
2929
}
3030

3131
func main() {
@@ -141,22 +141,22 @@ func (c *Config) Run() (exitCode int) {
141141
return
142142
}
143143

144-
loggers := &Loggers{
144+
loggers := &dep.Loggers{
145145
Out: log.New(c.Stdout, "", 0),
146146
Err: errLogger,
147147
Verbose: *verbose,
148148
}
149149

150150
// Set up the dep context.
151-
ctx, err := dep.NewContext(c.WorkingDir, c.Env)
151+
ctx, err := dep.NewContext(c.WorkingDir, c.Env, loggers)
152152
if err != nil {
153153
loggers.Err.Println(err)
154154
exitCode = 1
155155
return
156156
}
157157

158158
// Run the command with the post-flag-processing args.
159-
if err := cmd.Run(ctx, loggers, fs.Args()); err != nil {
159+
if err := cmd.Run(ctx, fs.Args()); err != nil {
160160
errLogger.Printf("%v\n", err)
161161
exitCode = 1
162162
return

cmd/dep/prune.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func (cmd *pruneCommand) Hidden() bool { return false }
3535
func (cmd *pruneCommand) Register(fs *flag.FlagSet) {
3636
}
3737

38-
func (cmd *pruneCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error {
38+
func (cmd *pruneCommand) Run(ctx *dep.Ctx, args []string) error {
3939
p, err := ctx.LoadProject("")
4040
if err != nil {
4141
return err
@@ -59,8 +59,8 @@ func (cmd *pruneCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) erro
5959
params := p.MakeParams()
6060
params.RootPackageTree = ptree
6161

62-
if loggers.Verbose {
63-
params.TraceLogger = loggers.Err
62+
if ctx.Loggers.Verbose {
63+
params.TraceLogger = ctx.Loggers.Err
6464
}
6565

6666
s, err := gps.Prepare(params, sm)

cmd/dep/remove.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ type removeCommand struct {
4141
keepSource bool
4242
}
4343

44-
func (cmd *removeCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error {
44+
func (cmd *removeCommand) Run(ctx *dep.Ctx, args []string) error {
4545
p, err := ctx.LoadProject("")
4646
if err != nil {
4747
return err
@@ -89,7 +89,7 @@ func (cmd *removeCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) err
8989
// not being able to detect the root for an import path that's
9090
// actually in the import list is a deeper problem. However,
9191
// it's not our direct concern here, so we just warn.
92-
loggers.Err.Printf("dep: could not infer root for %q\n", pr)
92+
ctx.Loggers.Err.Printf("dep: could not infer root for %q\n", pr)
9393
continue
9494
}
9595
otherroots[pr] = true
@@ -104,7 +104,7 @@ func (cmd *removeCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) err
104104
}
105105

106106
if len(rm) == 0 {
107-
loggers.Err.Println("dep: nothing to do")
107+
ctx.Loggers.Err.Println("dep: nothing to do")
108108
return nil
109109
}
110110
} else {
@@ -162,8 +162,8 @@ func (cmd *removeCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) err
162162
params := p.MakeParams()
163163
params.RootPackageTree = pkgT
164164

165-
if loggers.Verbose {
166-
params.TraceLogger = loggers.Err
165+
if ctx.Loggers.Verbose {
166+
params.TraceLogger = ctx.Loggers.Err
167167
}
168168
s, err := gps.Prepare(params, sm)
169169
if err != nil {

cmd/dep/status.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func (out *dotOutput) MissingHeader() {}
180180
func (out *dotOutput) MissingLine(ms *MissingStatus) {}
181181
func (out *dotOutput) MissingFooter() {}
182182

183-
func (cmd *statusCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) error {
183+
func (cmd *statusCommand) Run(ctx *dep.Ctx, args []string) error {
184184
p, err := ctx.LoadProject("")
185185
if err != nil {
186186
return err
@@ -214,11 +214,11 @@ func (cmd *statusCommand) Run(ctx *dep.Ctx, loggers *Loggers, args []string) err
214214
}
215215
}
216216

217-
if err := runStatusAll(loggers, out, p, sm); err != nil {
217+
if err := runStatusAll(ctx.Loggers, out, p, sm); err != nil {
218218
return err
219219
}
220220

221-
loggers.Out.Print(buf.String())
221+
ctx.Loggers.Out.Print(buf.String())
222222
return nil
223223
}
224224

@@ -239,7 +239,7 @@ type MissingStatus struct {
239239
MissingPackages []string
240240
}
241241

242-
func runStatusAll(loggers *Loggers, out outputter, p *dep.Project, sm gps.SourceManager) error {
242+
func runStatusAll(loggers *dep.Loggers, out outputter, p *dep.Project, sm gps.SourceManager) error {
243243
if p.Lock == nil {
244244
// TODO if we have no lock file, do...other stuff
245245
return nil

context.go

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package dep
66

77
import (
8+
"log"
89
"os"
910
"path/filepath"
1011
"runtime"
@@ -21,12 +22,20 @@ type Ctx struct {
2122
GOPATH string // Selected Go path
2223
GOPATHS []string // Other Go paths
2324
WorkingDir string
25+
*Loggers
26+
}
27+
28+
// Loggers holds standard loggers and a verbosity flag.
29+
type Loggers struct {
30+
Out, Err *log.Logger
31+
// Whether verbose logging is enabled.
32+
Verbose bool
2433
}
2534

2635
// NewContext creates a struct with the project's GOPATH. It assumes
2736
// that of your "GOPATH"'s we want the one we are currently in.
28-
func NewContext(wd string, env []string) (*Ctx, error) {
29-
ctx := &Ctx{WorkingDir: wd}
37+
func NewContext(wd string, env []string, loggers *Loggers) (*Ctx, error) {
38+
ctx := &Ctx{WorkingDir: wd, Loggers: loggers}
3039

3140
GOPATH := getEnv(env, "GOPATH")
3241
if GOPATH == "" {
@@ -144,7 +153,11 @@ func (c *Ctx) LoadProject(path string) (*Project, error) {
144153
}
145154
defer mf.Close()
146155

147-
p.Manifest, err = readManifest(mf)
156+
var warns []error
157+
p.Manifest, warns, err = readManifest(mf)
158+
for _, warn := range warns {
159+
c.Loggers.Err.Printf("dep: WARNING: %v\n", warn)
160+
}
148161
if err != nil {
149162
return nil, errors.Errorf("error while parsing %s: %s", mp, err)
150163
}

0 commit comments

Comments
 (0)