@@ -243,6 +243,10 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
243
243
// SetConfigFromFlags handles additional driver arguments as retrieved by [Driver.GetCreateFlags];
244
244
// see [drivers.Driver.SetConfigFromFlags]
245
245
func (d * Driver ) SetConfigFromFlags (opts drivers.DriverOptions ) error {
246
+ return d .setConfigFromFlags (opts )
247
+ }
248
+
249
+ func (d * Driver ) setConfigFromFlagsImpl (opts drivers.DriverOptions ) error {
246
250
d .AccessToken = opts .String (flagAPIToken )
247
251
d .Image = opts .String (flagImage )
248
252
d .ImageID = opts .Int (flagImageID )
@@ -267,7 +271,7 @@ func (d *Driver) SetConfigFromFlags(opts drivers.DriverOptions) error {
267
271
d .placementGroup = opts .String (flagPlacementGroup )
268
272
if opts .Bool (flagAutoSpread ) {
269
273
if d .placementGroup != "" {
270
- return errors . Errorf ( flagAutoSpread + " and " + flagPlacementGroup + " are mutually exclusive" )
274
+ return d . flagFailure ( "%v and %v are mutually exclusive", flagAutoSpread , flagPlacementGroup )
271
275
}
272
276
d .placementGroup = autoSpreadPgName
273
277
}
@@ -280,17 +284,17 @@ func (d *Driver) SetConfigFromFlags(opts drivers.DriverOptions) error {
280
284
d .SetSwarmConfigFromFlags (opts )
281
285
282
286
if d .AccessToken == "" {
283
- return errors . Errorf ("hetzner requires --%v to be set" , flagAPIToken )
287
+ return d . flagFailure ("hetzner requires --%v to be set" , flagAPIToken )
284
288
}
285
289
286
290
if d .ImageID != 0 && d .Image != "" && d .Image != defaultImage /* support legacy behaviour */ {
287
- return errors . Errorf ("--%v and --%v are mutually exclusive" , flagImage , flagImageID )
291
+ return d . flagFailure ("--%v and --%v are mutually exclusive" , flagImage , flagImageID )
288
292
} else if d .ImageID == 0 && d .Image == "" {
289
293
d .Image = defaultImage
290
294
}
291
295
292
296
if d .DisablePublic4 && d .DisablePublic6 && ! d .UsePrivateNetwork {
293
- return errors . Errorf ("--%v must be used if public networking is disabled (hint: implicitly set by --%v)" ,
297
+ return d . flagFailure ("--%v must be used if public networking is disabled (hint: implicitly set by --%v)" ,
294
298
flagUsePrivateNetwork , flagDisablePublic )
295
299
}
296
300
@@ -312,7 +316,7 @@ func (d *Driver) setLabelsFromFlags(opts drivers.DriverOptions) error {
312
316
for _ , label := range opts .StringSlice (flagServerLabel ) {
313
317
split := strings .SplitN (label , "=" , 2 )
314
318
if len (split ) != 2 {
315
- return errors . Errorf ("server label %v is not in key=value format" , label )
319
+ return d . flagFailure ("server label %v is not in key=value format" , label )
316
320
}
317
321
d .ServerLabels [split [0 ]] = split [1 ]
318
322
}
@@ -331,7 +335,7 @@ func (d *Driver) setLabelsFromFlags(opts drivers.DriverOptions) error {
331
335
func (d * Driver ) PreCreateCheck () error {
332
336
if d .IsExistingKey {
333
337
if d .originalKey == "" {
334
- return errors . New ("specifying an existing key ID requires the existing key path to be set as well" )
338
+ return d . flagFailure ("specifying an existing key ID requires the existing key path to be set as well" )
335
339
}
336
340
337
341
key , err := d .getKey ()
0 commit comments