當前位置: 首頁>>代碼示例>>Golang>>正文


Golang skel.PluginMain函數代碼示例

本文整理匯總了Golang中github.com/appc/cni/pkg/skel.PluginMain函數的典型用法代碼示例。如果您正苦於以下問題:Golang PluginMain函數的具體用法?Golang PluginMain怎麽用?Golang PluginMain使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了PluginMain函數的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: main

func main() {
	var (
		justVersion      bool
		cniNet           bool
		cniIpam          bool
		address          string
		meshAddress      string
		logLevel         string
		noMulticastRoute bool
	)

	flag.BoolVar(&justVersion, "version", false, "print version and exit")
	flag.BoolVar(&cniNet, "cni-net", false, "act as a CNI network plugin")
	flag.BoolVar(&cniIpam, "cni-ipam", false, "act as a CNI IPAM plugin")
	flag.StringVar(&logLevel, "log-level", "info", "logging level (debug, info, warning, error)")
	flag.StringVar(&address, "socket", "/run/docker/plugins/weave.sock", "socket on which to listen")
	flag.StringVar(&meshAddress, "meshsocket", "/run/docker/plugins/weavemesh.sock", "socket on which to listen in mesh mode")
	flag.BoolVar(&noMulticastRoute, "no-multicast-route", false, "deprecated (this is now the default)")

	flag.Parse()

	if justVersion {
		fmt.Printf("weave plugin %s\n", version)
		os.Exit(0)
	}

	common.SetLogLevel(logLevel)

	weave := weaveapi.NewClient(os.Getenv("WEAVE_HTTP_ADDR"), Log)

	switch {
	case cniIpam || strings.HasSuffix(os.Args[0], "weave-ipam"):
		i := ipamplugin.NewIpam(weave)
		cni.PluginMain(i.CmdAdd, i.CmdDel)
		os.Exit(0)
	case cniNet || strings.HasSuffix(os.Args[0], "weave-net"):
		n := netplugin.NewCNIPlugin(weave)
		cni.PluginMain(n.CmdAdd, n.CmdDel)
		os.Exit(0)
	}

	// API 1.21 is the first version that supports docker network commands
	dockerClient, err := docker.NewVersionedClientFromEnv("1.21")
	if err != nil {
		Log.Fatalf("unable to connect to docker: %s", err)
	}

	Log.Println("Weave plugin", version, "Command line options:", os.Args[1:])
	if noMulticastRoute {
		Log.Warning("--no-multicast-route option has been removed; multicast is off by default")
	}
	Log.Info(dockerClient.Info())

	err = run(dockerClient, weave, address, meshAddress)
	if err != nil {
		Log.Fatal(err)
	}
}
開發者ID:n054,項目名稱:weave,代碼行數:58,代碼來源:main.go

示例2: main

func main() {
	if len(os.Args) > 1 && os.Args[1] == "daemon" {
		runDaemon()
	} else {
		skel.PluginMain(cmdAdd, cmdDel)
	}
}
開發者ID:NeilW,項目名稱:cni,代碼行數:7,代碼來源:main.go

示例3: main

func main() {
	skel.PluginMain(cmdAdd, cmdDel)
}
開發者ID:sinfomicien,項目名稱:rkt,代碼行數:3,代碼來源:ptp.go


注:本文中的github.com/appc/cni/pkg/skel.PluginMain函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。