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 }