@@ -85,19 +85,19 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error {
85
85
root = filepath .Join (ctx .WorkingDir , args [0 ])
86
86
}
87
87
if err := os .MkdirAll (root , os .FileMode (0777 )); err != nil {
88
- return errors .Wrapf (err , "unable to create directory %s" , root )
88
+ return errors .Wrapf (err , "init failed: unable to create a directory at %s" , root )
89
89
}
90
90
}
91
91
92
92
var err error
93
93
p := new (dep.Project )
94
94
if err = p .SetRoot (root ); err != nil {
95
- return errors .Wrap (err , "NewProject" )
95
+ return errors .Wrapf (err , "init failed: unable to set the root project to %s" , root )
96
96
}
97
97
98
98
ctx .GOPATH , err = ctx .DetectProjectGOPATH (p )
99
99
if err != nil {
100
- return errors .Wrapf (err , "ctx.DetectProjectGOPATH " )
100
+ return errors .Wrapf (err , "init failed: unable to detect the containing GOPATH " )
101
101
}
102
102
103
103
mf := filepath .Join (root , dep .ManifestName )
@@ -106,30 +106,30 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error {
106
106
107
107
mok , err := fs .IsRegular (mf )
108
108
if err != nil {
109
- return err
109
+ return errors . Wrapf ( err , "init failed: unable to check for an existing manifest at %s" , mf )
110
110
}
111
111
if mok {
112
- return errors .Errorf ("manifest already exists: %s" , mf )
112
+ return errors .Errorf ("init aborted: manifest already exists at %s" , mf )
113
113
}
114
114
// Manifest file does not exist.
115
115
116
116
lok , err := fs .IsRegular (lf )
117
117
if err != nil {
118
- return err
118
+ return errors . Wrapf ( err , "init failed: unable to check for an existing lock at %s" , lf )
119
119
}
120
120
if lok {
121
- return errors .Errorf ("invalid state: manifest %q does not exist, but lock %q does" , mf , lf )
121
+ return errors .Errorf ("invalid aborted: lock already exists at %s" , lf )
122
122
}
123
123
124
124
ip , err := ctx .ImportForAbs (root )
125
125
if err != nil {
126
- return errors .Wrap (err , "root project import" )
126
+ return errors .Wrapf (err , "init failed: unable to determine the import path for the root project %s" , root )
127
127
}
128
128
p .ImportRoot = gps .ProjectRoot (ip )
129
129
130
130
sm , err := ctx .SourceManager ()
131
131
if err != nil {
132
- return errors .Wrap (err , "getSourceManager " )
132
+ return errors .Wrap (err , "init failed: unable to create a source manager " )
133
133
}
134
134
sm .UseDefaultSignalHandling ()
135
135
defer sm .Release ()
@@ -139,7 +139,7 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error {
139
139
}
140
140
pkgT , directDeps , err := getDirectDependencies (sm , p )
141
141
if err != nil {
142
- return err
142
+ return errors . Wrap ( err , "init failed: unable to determine direct dependencies" )
143
143
}
144
144
if ctx .Verbose {
145
145
ctx .Out .Printf ("Checked %d directories for packages.\n Found %d direct dependencies.\n " , len (pkgT .Packages ), len (directDeps ))
@@ -149,14 +149,14 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error {
149
149
rootAnalyzer := newRootAnalyzer (cmd .skipTools , ctx , directDeps , sm )
150
150
p .Manifest , p .Lock , err = rootAnalyzer .InitializeRootManifestAndLock (root , p .ImportRoot )
151
151
if err != nil {
152
- return err
152
+ return errors . Wrap ( err , "init failed: unable to prepare an initial manifest and lock for the solver" )
153
153
}
154
154
155
155
if cmd .gopath {
156
156
gs := newGopathScanner (ctx , directDeps , sm )
157
157
err = gs .InitializeRootManifestAndLock (p .Manifest , p .Lock )
158
158
if err != nil {
159
- return err
159
+ return errors . Wrap ( err , "init failed: unable to scan the GOPATH for dependencies" )
160
160
}
161
161
}
162
162
@@ -176,17 +176,18 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error {
176
176
}
177
177
178
178
if err := ctx .ValidateParams (sm , params ); err != nil {
179
- return err
179
+ return errors . Wrapf ( err , "init failed: validation of solve parameters failed" )
180
180
}
181
181
182
182
s , err := gps .Prepare (params , sm )
183
183
if err != nil {
184
- return errors .Wrap (err , "prepare solver" )
184
+ return errors .Wrap (err , "init failed: unable to prepare the solver" )
185
185
}
186
186
187
187
soln , err := s .Solve (context .TODO ())
188
188
if err != nil {
189
- return handleAllTheFailuresOfTheWorld (err )
189
+ err = handleAllTheFailuresOfTheWorld (err )
190
+ return errors .Wrap (err , "init failed: unable to solve the dependency graph" )
190
191
}
191
192
p .Lock = dep .LockFromSolution (soln )
192
193
@@ -196,31 +197,31 @@ func (cmd *initCommand) Run(ctx *dep.Ctx, args []string) error {
196
197
// to generate the final lock memo.
197
198
s , err = gps .Prepare (params , sm )
198
199
if err != nil {
199
- return errors .Wrap (err , "prepare solver " )
200
+ return errors .Wrap (err , "init failed: unable to recalculate the lock digest " )
200
201
}
201
202
202
203
p .Lock .SolveMeta .InputsDigest = s .HashInputs ()
203
204
204
205
// Pass timestamp (yyyyMMddHHmmss format) as suffix to backup name.
205
206
vendorbak , err := dep .BackupVendor (vpath , time .Now ().Format ("20060102150405" ))
206
207
if err != nil {
207
- return err
208
+ return errors . Wrap ( err , "init failed: first backup vendor/, delete it, and then retry the previous command: failed to backup existing vendor directory" )
208
209
}
209
210
if vendorbak != "" {
210
211
ctx .Err .Printf ("Old vendor backed up to %v" , vendorbak )
211
212
}
212
213
213
214
sw , err := dep .NewSafeWriter (p .Manifest , nil , p .Lock , dep .VendorAlways )
214
215
if err != nil {
215
- return err
216
+ return errors . Wrap ( err , "init failed: unable to create a SafeWriter" )
216
217
}
217
218
218
219
logger := ctx .Err
219
220
if ! ctx .Verbose {
220
221
logger = log .New (ioutil .Discard , "" , 0 )
221
222
}
222
223
if err := sw .Write (root , sm , ! cmd .noExamples , logger ); err != nil {
223
- return errors .Wrap (err , "safe write of manifest and lock " )
224
+ return errors .Wrap (err , "init failed: unable to write the manifest, lock and vendor directory to disk " )
224
225
}
225
226
226
227
return nil
0 commit comments