本文整理汇总了Golang中github.com/gocircuit/circuit/github.com/codegangsta/cli.Context类的典型用法代码示例。如果您正苦于以下问题:Golang Context类的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Context类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: recv
func recv(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("recv needs one anchor argument")
}
w, _ := parseGlob(args[0])
u, ok := c.Walk(w).Get().(client.Chan)
if !ok {
fatalf("not a channel")
}
msgr, err := u.Recv()
if err != nil {
fatalf("recv error: %v", err)
}
io.Copy(os.Stdout, msgr)
// if _, err = io.Copy(os.Stdout, msgr); err != nil {
// fatalf("transmission error: %v", err)
// }
}
开发者ID:prodigeni,项目名称:circuit,代码行数:25,代码来源:chan.go
示例2: mkdkr
func mkdkr(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("mkdkr needs an anchor argument")
}
w, _ := parseGlob(args[0])
buf, _ := ioutil.ReadAll(os.Stdin)
var run docker.Run
if err := json.Unmarshal(buf, &run); err != nil {
fatalf("command json not parsing: %v", err)
}
if x.Bool("scrub") {
run.Scrub = true
}
_, err := c.Walk(w).MakeDocker(run)
if err != nil {
fatalf("mkdkr error: %s", err)
}
}
开发者ID:herokai,项目名称:circuit,代码行数:25,代码来源:procdkr.go
示例3: join
func join(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 2 {
fatalf("join needs one anchor argument and one circuit address argument")
}
// Verify the target circuit address is valid
if _, err := n.ParseAddr(args[1]); err != nil {
fatalf("argument %q is not a valid circuit address", args[1])
}
//
w, _ := parseGlob(args[0])
switch u := c.Walk(w).Get().(type) {
case client.Server:
if err := u.Rejoin(args[1]); err != nil {
fatalf("error: %v", err)
}
default:
fatalf("not a server")
}
}
开发者ID:keryoo,项目名称:circuit,代码行数:26,代码来源:server.go
示例4: wait
func wait(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("wait needs one anchor argument")
}
w, _ := parseGlob(args[0])
//
var stat interface{}
var err error
switch u := c.Walk(w).Get().(type) {
case client.Proc:
stat, err = u.Wait()
case docker.Container:
stat, err = u.Wait()
default:
fatalf("anchor is not a process or a docker container")
}
if err != nil {
fatalf("wait error: %v", err)
}
buf, _ := json.MarshalIndent(stat, "", "\t")
fmt.Println(string(buf))
}
开发者ID:herokai,项目名称:circuit,代码行数:29,代码来源:procdkr.go
示例5: mkproc
// circuit mkproc /X1234/hola/charlie << EOF
// { … }
// EOF
// TODO: Proc element disappears if command misspelled and error condition not obvious.
func mkproc(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("mkproc needs an anchor argument")
}
w, _ := parseGlob(args[0])
buf, _ := ioutil.ReadAll(os.Stdin)
var cmd client.Cmd
if err := json.Unmarshal(buf, &cmd); err != nil {
fatalf("command json not parsing: %v", err)
}
p, err := c.Walk(w).MakeProc(cmd)
if err != nil {
fatalf("mkproc error: %s", err)
}
ps := p.Peek()
if ps.Exit != nil {
fatalf("%v", ps.Exit)
}
}
开发者ID:prodigeni,项目名称:circuit,代码行数:30,代码来源:proc.go
示例6: stdin
func stdin(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("stdin needs one anchor argument")
}
w, _ := parseGlob(args[0])
u, ok := c.Walk(w).Get().(interface {
Stdin() io.WriteCloser
})
if !ok {
fatalf("not a process or a container")
}
q := u.Stdin()
if _, err := io.Copy(q, os.Stdin); err != nil {
fatalf("transmission error: %v", err)
}
if err := q.Close(); err != nil {
fatalf("error closing stdin: %v", err)
}
}
开发者ID:herokai,项目名称:circuit,代码行数:26,代码来源:std.go
示例7: peek
// circuit peek /X1234/hola/charlie
func peek(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("peek needs one anchor argument")
}
w, _ := parseGlob(args[0])
switch t := c.Walk(w).Get().(type) {
case client.Server:
buf, _ := json.MarshalIndent(t.Peek(), "", "\t")
fmt.Println(string(buf))
case client.Chan:
buf, _ := json.MarshalIndent(t.Stat(), "", "\t")
fmt.Println(string(buf))
case client.Proc:
buf, _ := json.MarshalIndent(t.Peek(), "", "\t")
fmt.Println(string(buf))
case client.Subscription:
buf, _ := json.MarshalIndent(t.Peek(), "", "\t")
fmt.Println(string(buf))
case nil:
buf, _ := json.MarshalIndent(nil, "", "\t")
fmt.Println(string(buf))
default:
fatalf("unknown element")
}
}
开发者ID:hanjin8307,项目名称:circuit,代码行数:33,代码来源:peek.go
示例8: dial
func dial(x *cli.Context) *client.Client {
var dialAddr string
switch {
case x.IsSet("dial"):
dialAddr = x.String("dial")
case os.Getenv("CIRCUIT") != "":
buf, err := ioutil.ReadFile(os.Getenv("CIRCUIT"))
if err != nil {
fatalf("circuit environment file %s is not readable: %v", os.Getenv("CIRCUIT"), err)
}
dialAddr = strings.TrimSpace(string(buf))
default:
buf, err := ioutil.ReadFile(".circuit")
if err != nil {
fatalf("no dial address available; use flag -d or set CIRCUIT to a file name")
}
dialAddr = strings.TrimSpace(string(buf))
}
defer func() {
if r := recover(); r != nil {
fatalf("addressed server is gone or a newer one is in place")
}
}()
return client.Dial(dialAddr)
}
开发者ID:prodigeni,项目名称:circuit,代码行数:25,代码来源:ls.go
示例9: recv
func recv(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("recv needs one anchor argument")
}
w, _ := parseGlob(args[0])
switch u := c.Walk(w).Get().(type) {
case client.Chan:
msgr, err := u.Recv()
if err != nil {
fatalf("recv error: %v", err)
}
io.Copy(os.Stdout, msgr)
case client.Subscription:
v, ok := u.Consume()
if !ok {
fatalf("eof")
}
fmt.Println(v)
os.Stdout.Sync()
default:
fatalf("not a channel or subscription")
}
}
开发者ID:hanjin8307,项目名称:circuit,代码行数:30,代码来源:recv.go
示例10: server
func server(c *cli.Context) {
println("CIRCUIT 2014 gocircuit.org")
var err error
if c.Bool("docker") {
cmd, err := docker.Init()
if err != nil {
log.Fatalf("cannot use docker: %v", err)
}
log.Printf("Enabling docker elements, using %s", cmd)
}
// parse arguments
var tcpaddr = parseAddr(c) // server bind address
var join n.Addr // join address of another circuit server
if c.IsSet("join") {
if join, err = n.ParseAddr(c.String("join")); err != nil {
log.Fatalf("join address does not parse (%s)", err)
}
}
var multicast = parseDiscover(c)
// server instance working directory
var varDir string
if !c.IsSet("var") {
varDir = path.Join(os.TempDir(), fmt.Sprintf("%s-%%W-P%04d", n.Scheme, os.Getpid()))
} else {
varDir = c.String("var")
}
// start circuit runtime
addr := load(tcpaddr, varDir, readkey(c))
// tissue + locus
kin, xkin, rip := tissue.NewKin()
xlocus := locus.NewLocus(kin, rip)
// joining
switch {
case join != nil:
kin.ReJoin(join)
case multicast != nil:
log.Printf("Using UDP multicast discovery on address %s", multicast.String())
go assemble.NewAssembler(addr, multicast).AssembleServer(
func(joinAddr n.Addr) {
kin.ReJoin(joinAddr)
},
)
default:
log.Println("Singleton server.")
}
circuit.Listen(tissue.ServiceName, xkin)
circuit.Listen(LocusName, xlocus)
<-(chan int)(nil)
}
开发者ID:herokai,项目名称:circuit,代码行数:55,代码来源:start.go
示例11: scrb
func scrb(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("scrub needs one anchor argument")
}
w, _ := parseGlob(args[0])
c.Walk(w).Scrub()
}
开发者ID:hanjin8307,项目名称:circuit,代码行数:14,代码来源:peek.go
示例12: parseDiscover
func parseDiscover(c *cli.Context) *net.UDPAddr {
var src string
if c.IsSet("discover") {
src = c.String("discover")
} else if os.Getenv("CIRCUIT_DISCOVER") != "" {
src = os.Getenv("CIRCUIT_DISCOVER")
} else {
return nil
}
multicast, err := net.ResolveUDPAddr("udp", src)
if err != nil {
log.Fatalf("udp multicast address for discovery and assembly does not parse (%s)", err)
}
return multicast
}
开发者ID:hanjin8307,项目名称:circuit,代码行数:15,代码来源:start.go
示例13: clos
func clos(x *cli.Context) {
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("close needs one anchor argument")
}
w, _ := parseGlob(args[0])
u, ok := c.Walk(w).Get().(client.Chan)
if !ok {
fatalf("not a channel")
}
if err := u.Close(); err != nil {
fatalf("close error: %v", err)
}
}
开发者ID:prodigeni,项目名称:circuit,代码行数:15,代码来源:chan.go
示例14: ls
// circuit ls /Q123/apps/charlie
// circuit ls /...
func ls(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
println("ls needs a glob argument")
os.Exit(1)
}
w, ellipses := parseGlob(args[0])
list(0, "/", c.Walk(w), ellipses)
}
开发者ID:prodigeni,项目名称:circuit,代码行数:17,代码来源:ls.go
示例15: parseDiscover
func parseDiscover(c *cli.Context) *net.UDPAddr {
var src string
switch {
case c.String("discover") != "":
src = c.String("discover")
case os.Getenv("CIRCUIT_DISCOVER") != "":
src = os.Getenv("CIRCUIT_DISCOVER")
default:
return nil
}
multicast, err := net.ResolveUDPAddr("udp", src)
if err != nil {
log.Fatalf("udp multicast address for discovery and assembly does not parse (%s)", err)
}
return multicast
}
开发者ID:herokai,项目名称:circuit,代码行数:16,代码来源:start.go
示例16: mkonleave
// circuit [email protected] /X1234/hola/listy
func mkonleave(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("[email protected] needs an anchor argument")
}
w, _ := parseGlob(args[0])
_, err := c.Walk(w).MakeOnLeave()
if err != nil {
fatalf("[email protected] error: %s", err)
}
}
开发者ID:hanjin8307,项目名称:circuit,代码行数:18,代码来源:joinleave.go
示例17: suicide
func suicide(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 1 {
fatalf("suicide needs one server anchor argument")
}
w, _ := parseGlob(args[0])
u, ok := c.Walk(w).Get().(client.Server)
if !ok {
fatalf("not a server")
}
u.Suicide()
}
开发者ID:keryoo,项目名称:circuit,代码行数:18,代码来源:server.go
示例18: readkey
func readkey(x *cli.Context) (key []byte) {
var hmac string
switch {
case x.IsSet("hmac"):
hmac = x.String("hmac")
case os.Getenv("CIRCUIT_HMAC") != "":
hmac = os.Getenv("CIRCUIT_HMAC")
default:
return nil
}
b64, err := ioutil.ReadFile(hmac)
if err != nil {
fatalf("problem reading private key file (%s): %v", hmac, err)
}
if key, err = base64.StdEncoding.DecodeString(string(b64)); err != nil {
fatalf("problem decoding base64 private key: %v", err)
}
return
}
开发者ID:hanjin8307,项目名称:circuit,代码行数:19,代码来源:util.go
示例19: nunset
func nunset(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 2 {
fatalf("unset needs an anchor and a resource name arguments")
}
w, _ := parseGlob(args[0])
switch u := c.Walk(w).Get().(type) {
case client.Nameserver:
u.Unset(args[1])
default:
fatalf("not a nameserver element")
}
}
开发者ID:keryoo,项目名称:circuit,代码行数:19,代码来源:dns.go
示例20: sgnl
func sgnl(x *cli.Context) {
defer func() {
if r := recover(); r != nil {
fatalf("error, likely due to missing server or misspelled anchor: %v", r)
}
}()
c := dial(x)
args := x.Args()
if len(args) != 2 {
fatalf("signal needs an anchor and a signal name arguments")
}
w, _ := parseGlob(args[0])
u, ok := c.Walk(w).Get().(client.Proc)
if !ok {
fatalf("not a process")
}
if err := u.Signal(args[1]); err != nil {
fatalf("signal error: %v", err)
}
}
开发者ID:prodigeni,项目名称:circuit,代码行数:20,代码来源:proc.go
注:本文中的github.com/gocircuit/circuit/github.com/codegangsta/cli.Context类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论