本文整理汇总了Golang中github.com/codegangsta/cli.Context.Bindings方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.Bindings方法的具体用法?Golang Context.Bindings怎么用?Golang Context.Bindings使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/codegangsta/cli.Context
的用法示例。
在下文中一共展示了Context.Bindings方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: upCommandFunc
func upCommandFunc(c *cli.Context) {
config, err := config.ParseConfig("vanguard.yml")
if err != nil {
fmt.Println(err)
return
}
tiers, err := config.GetTiers()
if err != nil {
fmt.Println(err)
return
}
err = config.PullRemoteFiles(c.Bool("replace-files"))
if err != nil {
fmt.Println(err)
return
}
if c.Bool("dry") {
ShowTiers(tiers)
return
}
manager := &ContainerManager{
EnvVariables: make(map[string]string),
Clients: make(map[string]*client.Client),
RunningContainers: make(map[string][]*container.Container),
UsedContainerNames: make(map[string][]string),
}
for _, server := range config.Servers {
c := client.NewClient(server.Hostname)
bindings, err := c.Bindings()
for _, binding := range bindings {
err = c.Hide(binding.Port, "", "")
if err != nil {
fmt.Println(err)
return
}
}
if server.Label != "" {
host, err := c.Host()
if err == nil && host.InternalIp != "" {
manager.EnvVariables[server.Label] = host.InternalIp
}
}
if server.Expose == nil {
continue
}
for _, expose := range server.Expose {
arr := strings.Split(expose, ":")
if len(arr) != 3 {
continue
}
manager.CustomExpose(server.Hostname, arr[0], arr[1], arr[2])
}
}
for _, tier := range tiers {
for _, server := range tier.Servers {
for _, cont := range server.Containers {
manager.Manage(server.Hostname, cont)
if err != nil {
fmt.Println(err)
return
}
}
}
}
manager.StopUnused()
}