github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/cmd/podman/network_list.go (about)

     1  // +build !remoteclient
     2  
     3  package main
     4  
     5  import (
     6  	"errors"
     7  
     8  	"github.com/containers/libpod/cmd/podman/cliconfig"
     9  	"github.com/containers/libpod/pkg/adapter"
    10  	"github.com/containers/libpod/pkg/rootless"
    11  	"github.com/spf13/cobra"
    12  )
    13  
    14  var (
    15  	networklistCommand     cliconfig.NetworkListValues
    16  	networklistDescription = `List networks`
    17  	_networklistCommand    = &cobra.Command{
    18  		Use:   "ls",
    19  		Args:  noSubArgs,
    20  		Short: "network list",
    21  		Long:  networklistDescription,
    22  		RunE: func(cmd *cobra.Command, args []string) error {
    23  			networklistCommand.InputArgs = args
    24  			networklistCommand.GlobalFlags = MainGlobalOpts
    25  			networklistCommand.Remote = remoteclient
    26  			return networklistCmd(&networklistCommand)
    27  		},
    28  		Example: `podman network list`,
    29  	}
    30  )
    31  
    32  func init() {
    33  	networklistCommand.Command = _networklistCommand
    34  	networklistCommand.SetHelpTemplate(HelpTemplate())
    35  	networklistCommand.SetUsageTemplate(UsageTemplate())
    36  	flags := networklistCommand.Flags()
    37  	// TODO enable filters based on something
    38  	//flags.StringSliceVarP(&networklistCommand.Filter, "filter", "f",  []string{}, "Pause all running containers")
    39  	flags.BoolVarP(&networklistCommand.Quiet, "quiet", "q", false, "display only names")
    40  }
    41  
    42  func networklistCmd(c *cliconfig.NetworkListValues) error {
    43  	if rootless.IsRootless() && !remoteclient {
    44  		return errors.New("network list is not supported for rootless mode")
    45  	}
    46  	if len(c.InputArgs) > 0 {
    47  		return errors.New("network list takes no arguments")
    48  	}
    49  	runtime, err := adapter.GetRuntimeNoStore(getContext(), &c.PodmanCommand)
    50  	if err != nil {
    51  		return err
    52  	}
    53  	return runtime.NetworkList(c)
    54  }