github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/swarmkit/cmd/swarmctl/service/remove.go (about)

     1  package service
     2  
     3  import (
     4  	"errors"
     5  	"fmt"
     6  
     7  	"github.com/docker/swarmkit/api"
     8  	"github.com/docker/swarmkit/cmd/swarmctl/common"
     9  	"github.com/spf13/cobra"
    10  )
    11  
    12  var (
    13  	removeCmd = &cobra.Command{
    14  		Use:     "remove <service ID>",
    15  		Short:   "Remove a service",
    16  		Aliases: []string{"rm"},
    17  		RunE: func(cmd *cobra.Command, args []string) error {
    18  			if len(args) == 0 {
    19  				return errors.New("service ID missing")
    20  			}
    21  
    22  			if len(args) > 1 {
    23  				return errors.New("remove command takes exactly 1 argument")
    24  			}
    25  
    26  			c, err := common.Dial(cmd)
    27  			if err != nil {
    28  				return err
    29  			}
    30  
    31  			for _, serviceName := range args {
    32  				service, err := getService(common.Context(cmd), c, serviceName)
    33  				if err != nil {
    34  					return err
    35  				}
    36  				_, err = c.RemoveService(common.Context(cmd), &api.RemoveServiceRequest{ServiceID: service.ID})
    37  				if err != nil {
    38  					return err
    39  				}
    40  				fmt.Println(serviceName)
    41  			}
    42  			return nil
    43  		},
    44  	}
    45  )