github.com/zignig/go-ipfs@v0.0.0-20141111235910-c9e5fdf55a52/cmd/ipfs/serve.go (about) 1 package main 2 3 import ( 4 "fmt" 5 6 "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/gonuts/flag" 7 "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/commander" 8 ma "github.com/jbenet/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-multiaddr" 9 10 h "github.com/jbenet/go-ipfs/server/http" 11 ) 12 13 var cmdIpfsServe = &commander.Command{ 14 UsageLine: "serve", 15 Short: "Serve an interface to ipfs", 16 Subcommands: []*commander.Command{ 17 cmdIpfsServeHTTP, 18 }, 19 Flag: *flag.NewFlagSet("ipfs-serve", flag.ExitOnError), 20 } 21 22 var cmdIpfsServeHTTP = &commander.Command{ 23 UsageLine: "http", 24 Short: "Serve an HTTP API", 25 Long: `ipfs serve http - Serve an http gateway into ipfs.`, 26 Run: serveHTTPCmd, 27 Flag: *flag.NewFlagSet("ipfs-serve-http", flag.ExitOnError), 28 } 29 30 func init() { 31 cmdIpfsServeHTTP.Flag.String("address", "/ip4/127.0.0.1/tcp/8080", "Listen Address") 32 } 33 34 func serveHTTPCmd(c *commander.Command, _ []string) error { 35 cc, err := setupCmdContext(c, true) 36 if err != nil { 37 return err 38 } 39 defer cc.daemon.Close() 40 41 address := c.Flag.Lookup("address").Value.Get().(string) 42 maddr, err := ma.NewMultiaddr(address) 43 if err != nil { 44 return err 45 } 46 47 fmt.Printf("Serving on %s\n", address) 48 return h.Serve(maddr, cc.node) 49 }