当前位置: 首页>>代码示例>>Golang>>正文


Golang client.Anchor类代码示例

本文整理汇总了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;未经允许,请勿转载。