本文整理汇总了Golang中github.com/gocircuit/circuit/client.Anchor类的典型用法代码示例。如果您正苦于以下问题:Golang Anchor类的具体用法?Golang Anchor怎么用?Golang Anchor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Anchor类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: list
func list(level int, prefix string, anchor client.Anchor, recurse bool) {
if anchor == nil {
return
}
//println(fmt.Sprintf("prefix=%v a=%v/%T r=%v", prefix, anchor, anchor, recurse))
var c children
for n, a := range anchor.View() {
e := &entry{n: n, a: a}
v := a.Get()
switch v.(type) {
case client.Chan:
e.k = "chan"
case client.Proc:
e.k = "proc"
default:
if level == 0 {
e.k = "----"
}
}
c = append(c, e)
}
sort.Sort(c)
for _, e := range c {
if e.k != "" {
fmt.Printf("%4s %s%s\n", e.k, prefix, e.n)
}
if recurse {
list(level+1, prefix+e.n+"/", e.a, true)
}
}
}
开发者ID:prodigeni,项目名称:circuit,代码行数:31,代码来源:ls.go
示例2: startNodejs
func startNodejs(host client.Anchor, mysqlIP, mysqlPort string) (ip, port string) {
defer func() {
if recover() != nil {
fatalf("connection to host lost")
}
}()
// Start node.js application
ip = getUbuntuHostPublicIP(host)
port = "8080"
job := host.Walk([]string{"nodejs"})
shell := fmt.Sprintf(
"sudo /usr/bin/nodejs index.js "+
"--mysql_host %s --mysql_port %s --api_host %s --api_port %s "+
"&> /tmp/tutorial-nodejs.log",
mysqlIP, mysqlPort,
"0.0.0.0", port,
)
proc, err := job.MakeProc(client.Cmd{
Path: "/bin/sh",
Dir: "/home/ubuntu/nodejs",
Args: []string{"-c", shell},
Scrub: true,
})
if err != nil {
fatalf("nodejs app already running")
}
proc.Stdin().Close()
proc.Stdout().Close()
proc.Stderr().Close()
return
}
开发者ID:archa347,项目名称:circuit,代码行数:33,代码来源:main.go
示例3: list
func list(level int, prefix string, anchor client.Anchor, recurse, long, depth bool) {
if anchor == nil {
return
}
// println(fmt.Sprintf("prefix=%v a=%v/%T r=%v", prefix, anchor, anchor, recurse))
var c children
for n, a := range anchor.View() {
e := &entry{n: n, a: a}
v := a.Get()
switch t := v.(type) {
case client.Server:
e.k = "server"
case client.Chan:
e.k = "chan"
case client.Proc:
e.k = "proc"
// if t.GetCmd().Scrub {
// e.k = "proc-autoscrub"
// } else {
// e.k = "proc"
// }
case client.Nameserver:
e.k = "dns"
case docker.Container:
e.k = "docker"
case client.Subscription:
e.k = "@" + t.Peek().Source
default:
e.k = "·"
}
c = append(c, e)
}
sort.Sort(c)
for _, e := range c {
if recurse && depth {
list(level+1, prefix+e.n+"/", e.a, true, long, depth)
}
if long {
fmt.Printf("%-15s %s%s\n", e.k, prefix, e.n)
} else {
fmt.Printf("%s%s\n", prefix, e.n)
}
if recurse && !depth {
list(level+1, prefix+e.n+"/", e.a, true, long, depth)
}
}
}
开发者ID:keryoo,项目名称:circuit,代码行数:47,代码来源:ls.go
示例4: runShellStdin
func runShellStdin(host client.Anchor, cmd, stdin string) (string, error) {
defer func() {
if recover() != nil {
fatalf("connection to host lost")
}
}()
job := host.Walk([]string{"shelljob", strconv.Itoa(rand.Int())})
proc, _ := job.MakeProc(client.Cmd{
Path: "/bin/sh",
Dir: "/tmp",
Args: []string{"-c", cmd},
Scrub: true,
})
go func() {
io.Copy(proc.Stdin(), bytes.NewBufferString(stdin))
proc.Stdin().Close() // Must close the standard input of the shell process.
}()
proc.Stderr().Close() // Close to indicate discarding standard error
var buf bytes.Buffer
io.Copy(&buf, proc.Stdout())
stat, _ := proc.Wait()
return buf.String(), stat.Exit
}
开发者ID:archa347,项目名称:circuit,代码行数:23,代码来源:main.go
注:本文中的github.com/gocircuit/circuit/client.Anchor类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论