@@ -243,6 +243,10 @@ func (d *Driver) GetCreateFlags() []mcnflag.Flag {
243243// SetConfigFromFlags handles additional driver arguments as retrieved by [Driver.GetCreateFlags];
244244// see [drivers.Driver.SetConfigFromFlags]
245245func (d * Driver ) SetConfigFromFlags (opts drivers.DriverOptions ) error {
246+ return d .setConfigFromFlags (opts )
247+ }
248+
249+ func (d * Driver ) setConfigFromFlagsImpl (opts drivers.DriverOptions ) error {
246250 d .AccessToken = opts .String (flagAPIToken )
247251 d .Image = opts .String (flagImage )
248252 d .ImageID = opts .Int (flagImageID )
@@ -267,7 +271,7 @@ func (d *Driver) SetConfigFromFlags(opts drivers.DriverOptions) error {
267271 d .placementGroup = opts .String (flagPlacementGroup )
268272 if opts .Bool (flagAutoSpread ) {
269273 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 )
271275 }
272276 d .placementGroup = autoSpreadPgName
273277 }
@@ -280,17 +284,17 @@ func (d *Driver) SetConfigFromFlags(opts drivers.DriverOptions) error {
280284 d .SetSwarmConfigFromFlags (opts )
281285
282286 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 )
284288 }
285289
286290 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 )
288292 } else if d .ImageID == 0 && d .Image == "" {
289293 d .Image = defaultImage
290294 }
291295
292296 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)" ,
294298 flagUsePrivateNetwork , flagDisablePublic )
295299 }
296300
@@ -312,7 +316,7 @@ func (d *Driver) setLabelsFromFlags(opts drivers.DriverOptions) error {
312316 for _ , label := range opts .StringSlice (flagServerLabel ) {
313317 split := strings .SplitN (label , "=" , 2 )
314318 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 )
316320 }
317321 d .ServerLabels [split [0 ]] = split [1 ]
318322 }
@@ -331,7 +335,7 @@ func (d *Driver) setLabelsFromFlags(opts drivers.DriverOptions) error {
331335func (d * Driver ) PreCreateCheck () error {
332336 if d .IsExistingKey {
333337 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" )
335339 }
336340
337341 key , err := d .getKey ()
0 commit comments