github.com/scaleway/scaleway-cli@v1.11.1/pkg/commands/rm.go (about) 1 // Copyright (C) 2015 Scaleway. All rights reserved. 2 // Use of this source code is governed by a MIT-style 3 // license that can be found in the LICENSE.md file. 4 5 package commands 6 7 import ( 8 "fmt" 9 10 "github.com/Sirupsen/logrus" 11 ) 12 13 // RmArgs are flags for the `RunRm` function 14 type RmArgs struct { 15 Servers []string 16 Force bool 17 } 18 19 // RunRm is the handler for 'scw rm' 20 func RunRm(ctx CommandContext, args RmArgs) error { 21 hasError := false 22 for _, needle := range args.Servers { 23 server, err := ctx.API.GetServerID(needle) 24 if err != nil { 25 return err 26 } 27 if args.Force { 28 err = ctx.API.DeleteServerForce(server) 29 } else { 30 err = ctx.API.DeleteServer(server) 31 } 32 if err != nil { 33 logrus.Errorf("failed to delete server %s: %s", server, err) 34 hasError = true 35 } else { 36 fmt.Fprintln(ctx.Stdout, needle) 37 } 38 } 39 if hasError { 40 return fmt.Errorf("at least 1 server failed to be removed") 41 } 42 return nil 43 }