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

     1  package flagparser
     2  
     3  import (
     4  	"github.com/docker/swarmkit/api"
     5  	gogotypes "github.com/gogo/protobuf/types"
     6  	"github.com/spf13/pflag"
     7  )
     8  
     9  func parseContainer(flags *pflag.FlagSet, spec *api.ServiceSpec) error {
    10  	if flags.Changed("image") {
    11  		image, err := flags.GetString("image")
    12  		if err != nil {
    13  			return err
    14  		}
    15  		spec.Task.GetContainer().Image = image
    16  	}
    17  
    18  	if flags.Changed("hostname") {
    19  		hostname, err := flags.GetString("hostname")
    20  		if err != nil {
    21  			return err
    22  		}
    23  		spec.Task.GetContainer().Hostname = hostname
    24  	}
    25  
    26  	if flags.Changed("command") {
    27  		command, err := flags.GetStringSlice("command")
    28  		if err != nil {
    29  			return err
    30  		}
    31  		spec.Task.GetContainer().Command = command
    32  	}
    33  
    34  	if flags.Changed("args") {
    35  		args, err := flags.GetStringSlice("args")
    36  		if err != nil {
    37  			return err
    38  		}
    39  		spec.Task.GetContainer().Args = args
    40  	}
    41  
    42  	if flags.Changed("env") {
    43  		env, err := flags.GetStringSlice("env")
    44  		if err != nil {
    45  			return err
    46  		}
    47  		spec.Task.GetContainer().Env = env
    48  	}
    49  
    50  	if flags.Changed("tty") {
    51  		tty, err := flags.GetBool("tty")
    52  		if err != nil {
    53  			return err
    54  		}
    55  
    56  		spec.Task.GetContainer().TTY = tty
    57  	}
    58  
    59  	if flags.Changed("open-stdin") {
    60  		openStdin, err := flags.GetBool("open-stdin")
    61  		if err != nil {
    62  			return err
    63  		}
    64  
    65  		spec.Task.GetContainer().OpenStdin = openStdin
    66  	}
    67  
    68  	if flags.Changed("init") {
    69  		init, err := flags.GetBool("init")
    70  		if err != nil {
    71  			return err
    72  		}
    73  
    74  		spec.Task.GetContainer().Init = &gogotypes.BoolValue{
    75  			Value: init,
    76  		}
    77  	}
    78  
    79  	return nil
    80  }