Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Side by Side Diff: vpython/application/probe.go

Issue 2963503003: [errors] Greatly simplify common/errors package. (Closed)
Patch Set: fix nits Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « vpython/application/application.go ('k') | vpython/application/subcommand_delete.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The LUCI Authors. All rights reserved. 1 // Copyright 2017 The LUCI Authors. All rights reserved.
2 // Use of this source code is governed under the Apache License, Version 2.0 2 // Use of this source code is governed under the Apache License, Version 2.0
3 // that can be found in the LICENSE file. 3 // that can be found in the LICENSE file.
4 4
5 package application 5 package application
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 "os" 9 "os"
10 "os/exec" 10 "os/exec"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 // the LookPathResult. 97 // the LookPathResult.
98 func (lp *lookPath) checkWrapper(c context.Context, path string, env environ.Env ) (isWrapper bool, err error) { 98 func (lp *lookPath) checkWrapper(c context.Context, path string, env environ.Env ) (isWrapper bool, err error) {
99 env.Set(checkWrapperENV, "1") 99 env.Set(checkWrapperENV, "1")
100 100
101 cmd := exec.CommandContext(c, path, "--version") 101 cmd := exec.CommandContext(c, path, "--version")
102 cmd.Env = env.Sorted() 102 cmd.Env = env.Sorted()
103 103
104 output, err := cmd.CombinedOutput() 104 output, err := cmd.CombinedOutput()
105 rc, ok := exitcode.Get(err) 105 rc, ok := exitcode.Get(err)
106 if !ok { 106 if !ok {
107 » » err = errors.Annotate(err).Reason("failed to check if %(path)q i s a wrapper"). 107 » » err = errors.Annotate(err, "failed to check if %q is a wrapper", path).Err()
108 » » » D("path", path).
109 » » » Err()
110 return 108 return
111 } 109 }
112 110
113 // Retain the last output, so our "look" can reference it to extract the 111 // Retain the last output, so our "look" can reference it to extract the
114 // version string. 112 // version string.
115 lp.lastPath = path 113 lp.lastPath = path
116 lp.lastOutput = string(output) 114 lp.lastOutput = string(output)
117 115
118 if rc != 0 { 116 if rc != 0 {
119 // The target exited with a non-zero error code. It is a wrapper if it 117 // The target exited with a non-zero error code. It is a wrapper if it
120 // printed the sentinel text. 118 // printed the sentinel text.
121 isWrapper = strings.TrimSpace(lp.lastOutput) == checkWrapperSent inel 119 isWrapper = strings.TrimSpace(lp.lastOutput) == checkWrapperSent inel
122 if isWrapper { 120 if isWrapper {
123 // The target was successfully identified as a wrapper. Clear "err", which 121 // The target was successfully identified as a wrapper. Clear "err", which
124 // is non-nil b/c of the non-zero exit code, to indicate a successful 122 // is non-nil b/c of the non-zero exit code, to indicate a successful
125 // wrapper check. 123 // wrapper check.
126 err = nil 124 err = nil
127 return 125 return
128 } 126 }
129 127
130 // The target returned non-zero, but didn't identify as a wrappe r. It is 128 // The target returned non-zero, but didn't identify as a wrappe r. It is
131 // likely something that happens to be named the same thing as t he target, 129 // likely something that happens to be named the same thing as t he target,
132 // which is an error. 130 // which is an error.
133 » » err = errors.Annotate(err).Reason("wrapper check returned non-ze ro").Err() 131 » » err = errors.Annotate(err, "wrapper check returned non-zero").Er r()
134 } 132 }
135 133
136 return 134 return
137 } 135 }
OLDNEW
« no previous file with comments | « vpython/application/application.go ('k') | vpython/application/subcommand_delete.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698