docs/flags.go

88 lines
1.9 KiB
Go

package main
import (
"github.com/codegangsta/cli"
"os"
"path/filepath"
"runtime"
)
func homepath(p string) string {
home := os.Getenv("HOME")
if runtime.GOOS == "windows" {
home = os.Getenv("USERPROFILE")
}
return filepath.Join(home, p)
}
func getDiscovery(c *cli.Context) string {
if len(c.Args()) == 1 {
return c.Args()[0]
}
return os.Getenv("SWARM_DISCOVERY")
}
var (
flStore = cli.StringFlag{
Name: "rootdir",
Value: homepath(".swarm"),
Usage: "",
}
flAddr = cli.StringFlag{
Name: "addr",
Value: "127.0.0.1:4243",
Usage: "ip to advertise",
EnvVar: "SWARM_ADDR",
}
flHosts = cli.StringSliceFlag{
Name: "host, H",
Value: &cli.StringSlice{"tcp://127.0.0.1:2375"},
Usage: "ip/socket to listen on",
EnvVar: "SWARM_HOST",
}
flHeartBeat = cli.IntFlag{
Name: "heartbeat, hb",
Value: 25,
Usage: "time in second between each heartbeat",
}
flEnableCors = cli.BoolFlag{
Name: "api-enable-cors, cors",
Usage: "enable CORS headers in the remote API",
}
flTls = cli.BoolFlag{
Name: "tls",
Usage: "use TLS; implied by --tlsverify=true",
}
flTlsCaCert = cli.StringFlag{
Name: "tlscacert",
Usage: "trust only remotes providing a certificate signed by the CA given here",
}
flTlsCert = cli.StringFlag{
Name: "tlscert",
Usage: "path to TLS certificate file",
}
flTlsKey = cli.StringFlag{
Name: "tlskey",
Usage: "path to TLS key file",
}
flTlsVerify = cli.BoolFlag{
Name: "tlsverify",
Usage: "use TLS and verify the remote",
}
flOverCommit = cli.Float64Flag{
Name: "overcommit, oc",
Usage: "overcommit to apply on resources",
Value: 0.05,
}
flStrategy = cli.StringFlag{
Name: "strategy",
Usage: "placement strategy to use [binpacking, random]",
Value: "binpacking",
}
flFilter = cli.StringSliceFlag{
Name: "filter, f",
Usage: "filter to use [constraint, affinity, health, port]",
Value: &cli.StringSlice{"constraint", "affinity", "health", "port"},
}
)