github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/libnetwork/cmd/dnet/flags.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/sirupsen/logrus"
     8  	"github.com/urfave/cli"
     9  )
    10  
    11  var (
    12  	dnetFlags = []cli.Flag{
    13  		cli.BoolFlag{
    14  			Name:  "d, -daemon",
    15  			Usage: "Enable daemon mode",
    16  		},
    17  		cli.StringFlag{
    18  			Name:  "H, -host",
    19  			Value: "",
    20  			Usage: "Daemon socket to connect to",
    21  		},
    22  		cli.StringFlag{
    23  			Name:  "l, -log-level",
    24  			Value: "info",
    25  			Usage: "Set the logging level",
    26  		},
    27  		cli.BoolFlag{
    28  			Name:  "D, -debug",
    29  			Usage: "Enable debug mode",
    30  		},
    31  		cli.StringFlag{
    32  			Name:  "c, -cfg-file",
    33  			Value: "/etc/default/libnetwork.toml",
    34  			Usage: "Configuration file",
    35  		},
    36  	}
    37  )
    38  
    39  func processFlags(c *cli.Context) error {
    40  	var err error
    41  
    42  	if c.String("l") != "" {
    43  		lvl, err := logrus.ParseLevel(c.String("l"))
    44  		if err != nil {
    45  			fmt.Printf("Unable to parse logging level: %s\n", c.String("l"))
    46  			os.Exit(1)
    47  		}
    48  		logrus.SetLevel(lvl)
    49  	} else {
    50  		logrus.SetLevel(logrus.InfoLevel)
    51  	}
    52  
    53  	if c.Bool("D") {
    54  		logrus.SetLevel(logrus.DebugLevel)
    55  	}
    56  
    57  	hostFlag := c.String("H")
    58  	if hostFlag == "" {
    59  		defaultHost := os.Getenv("DNET_HOST")
    60  		if defaultHost == "" {
    61  			// TODO : Add UDS support
    62  			defaultHost = fmt.Sprintf("tcp://%s:%d", DefaultHTTPHost, DefaultHTTPPort)
    63  		}
    64  		hostFlag = defaultHost
    65  	}
    66  
    67  	epConn, err = newDnetConnection(hostFlag)
    68  	if err != nil {
    69  		if c.Bool("d") {
    70  			logrus.Error(err)
    71  		} else {
    72  			fmt.Println(err)
    73  		}
    74  		os.Exit(1)
    75  	}
    76  
    77  	if c.Bool("d") {
    78  		err = epConn.dnetDaemon(c.String("c"))
    79  		if err != nil {
    80  			logrus.Errorf("dnet Daemon exited with an error : %v", err)
    81  			os.Exit(1)
    82  		}
    83  		os.Exit(1)
    84  	}
    85  
    86  	return nil
    87  }