func (dl *DaemonListener) handleConnection(conn net.Conn) { defer conn.Close() dec := json.NewDecoder(conn) var command Command err := dec.Decode(&command) if err != nil { fmt.Fprintln(conn, err) return } u.DOut("Got command: %v\n", command) switch command.Command { case "add": err = commands.Add(dl.node, command.Args, command.Opts, conn) case "cat": err = commands.Cat(dl.node, command.Args, command.Opts, conn) case "ls": err = commands.Ls(dl.node, command.Args, command.Opts, conn) case "pin": err = commands.Pin(dl.node, command.Args, command.Opts, conn) case "peers": err = commands.Peers(dl.node, command.Args, command.Opts, conn) default: err = fmt.Errorf("Invalid Command: '%s'", command.Command) } if err != nil { fmt.Fprintln(conn, err) } }
func catCmd(c *commander.Command, inp []string) error { if len(inp) < 1 { u.POut(c.Long) return nil } expanded, err := u.ExpandPathnames(inp) if err != nil { return err } com := daemon.NewCommand() com.Command = "cat" com.Args = expanded err = daemon.SendCommand(com, "localhost:12345") if err != nil { n, err := localNode(false) if err != nil { return err } return commands.Cat(n, com.Args, com.Opts, os.Stdout) } return nil }