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 addCmd(c *commander.Command, inp []string) error { if len(inp) < 1 { u.POut(c.Long) return nil } cmd := daemon.NewCommand() cmd.Command = "add" fmt.Println(inp) cmd.Args = inp cmd.Opts["r"] = c.Flag.Lookup("r").Value.Get() err := daemon.SendCommand(cmd, "localhost:12345") if err != nil { // Do locally n, err := localNode(false) if err != nil { return err } return commands.Add(n, cmd.Args, cmd.Opts, os.Stdout) } return nil }