package main import ( "errors" "fmt" "github.com/gonuts/flag" "github.com/jbenet/commander" h "github.com/jbenet/go-ipfs/http" ) var cmdIpfsServe = &commander.Command{ UsageLine: "serve", Short: "Serve an HTTP API", Long: `ipfs serve - Serve an http gateway into ipfs.`, Run: serveCmd, Flag: *flag.NewFlagSet("ipfs-serve", flag.ExitOnError), } func init() { cmdIpfsServe.Flag.Uint("port", 8080, "Port number") cmdIpfsServe.Flag.String("hostname", "localhost", "Hostname") } func serveCmd(c *commander.Command, _ []string) error { port := c.Flag.Lookup("port").Value.Get().(uint) if port < 1 || port > 65535 { return errors.New("invalid port number") } hostname := c.Flag.Lookup("hostname").Value.Get().(string) n, err := localNode() if err != nil { return err } address := fmt.Sprintf("%s:%d", hostname, port) fmt.Printf("Serving on %s\n", address) return h.Serve(address, n) }