diff options
author | Martin Polden <mpolden@mpolden.no> | 2018-03-01 21:42:24 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2018-03-01 21:44:16 +0100 |
commit | 8bf0d319493f3b1819279fb1ec7c30347f8ecce6 (patch) | |
tree | 806beb6597e2b615e6f001ee90ea28399996d293 | |
parent | fdcf4ae11be7ea936adf5a1abe1c122605594b1e (diff) |
Remove unnecessary method
-rw-r--r-- | cmd/lftpq/main.go | 10 | ||||
-rw-r--r-- | cmd/lftpq/main_test.go | 2 | ||||
-rw-r--r-- | queue/queue.go | 52 | ||||
-rw-r--r-- | queue/queue_test.go | 68 |
4 files changed, 59 insertions, 73 deletions
diff --git a/cmd/lftpq/main.go b/cmd/lftpq/main.go index a80b453..0cb90d0 100644 --- a/cmd/lftpq/main.go +++ b/cmd/lftpq/main.go @@ -27,7 +27,7 @@ type CLI struct { lister lister stderr io.Writer stdout io.Writer - rd io.Reader + stdin io.Reader } func (c *CLI) Run() error { @@ -45,7 +45,7 @@ func (c *CLI) Run() error { } var queues []queue.Queue if c.Import { - if queues, err = queue.Read(cfg.Sites, c.rd); err != nil { + if queues, err = queue.Read(cfg.Sites, c.stdin); err != nil { return err } } else { @@ -109,7 +109,7 @@ func (c *CLI) transfer(q queue.Queue) error { out, err = q.MarshalText() } if err == nil { - fmt.Fprintf(c.stdout, "%s", out) + fmt.Fprint(c.stdout, string(out)) } return err } @@ -117,7 +117,7 @@ func (c *CLI) transfer(q queue.Queue) error { c.printf("%s queue is empty\n", q.Site.Name) return nil } - if err := q.Start(c.consumer); err != nil { + if err := q.Transfer(c.consumer); err != nil { return err } if q.Site.PostCommand == "" { @@ -138,7 +138,7 @@ func main() { } cli.stderr = os.Stderr cli.stdout = os.Stdout - cli.rd = os.Stdin + cli.stdin = os.Stdin client := lftp.Client{Path: cli.LftpPath, InheritIO: !cli.Quiet} cli.lister = &client cli.consumer = &client diff --git a/cmd/lftpq/main_test.go b/cmd/lftpq/main_test.go index 27840f7..382f9b8 100644 --- a/cmd/lftpq/main_test.go +++ b/cmd/lftpq/main_test.go @@ -144,7 +144,7 @@ t2 /baz/foo.2018 // Queue is consumed by client cli.Import = true - cli.rd = stdin + cli.stdin = stdin client := testClient{consumeQueue: true} cli.consumer = &client cli.lister = &client diff --git a/queue/queue.go b/queue/queue.go index 16e3a37..23bcc53 100644 --- a/queue/queue.go +++ b/queue/queue.go @@ -82,26 +82,8 @@ func (q *Queue) Transferable() []*Item { return items } -func (q *Queue) Script() string { - var buf bytes.Buffer - buf.WriteString("open ") - buf.WriteString(q.Site.Name) - buf.WriteString("\n") - for _, item := range q.Transferable() { - buf.WriteString("queue ") - buf.WriteString(q.Site.GetCmd) - buf.WriteString(" ") - buf.WriteString(item.RemotePath) - buf.WriteString(" ") - buf.WriteString(item.LocalPath) - buf.WriteString("\n") - } - buf.WriteString("queue start\nwait\nexit\n") - return buf.String() -} - -func (q *Queue) Start(consumer Consumer) error { - name, err := q.write() +func (q *Queue) Transfer(consumer Consumer) error { + name, err := q.tempFile() if err != nil { return err } @@ -124,21 +106,39 @@ func (q *Queue) PostCommand(inheritIO bool) (*exec.Cmd, error) { return cmd, nil } -func (q Queue) MarshalJSON() ([]byte, error) { - return json.MarshalIndent(q.Items, "", " ") +func (q Queue) MarshalText() ([]byte, error) { + var buf bytes.Buffer + buf.WriteString("open ") + buf.WriteString(q.Site.Name) + buf.WriteString("\n") + for _, item := range q.Transferable() { + buf.WriteString("queue ") + buf.WriteString(q.Site.GetCmd) + buf.WriteString(" ") + buf.WriteString(item.RemotePath) + buf.WriteString(" ") + buf.WriteString(item.LocalPath) + buf.WriteString("\n") + } + buf.WriteString("queue start\nwait\nexit\n") + return buf.Bytes(), nil } -func (q Queue) MarshalText() ([]byte, error) { - return []byte(q.Script()), nil +func (q Queue) MarshalJSON() ([]byte, error) { + return json.MarshalIndent(q.Items, "", " ") } -func (q *Queue) write() (string, error) { +func (q *Queue) tempFile() (string, error) { f, err := ioutil.TempFile("", "lftpq") if err != nil { return "", err } defer f.Close() - if _, err := f.WriteString(q.Script()); err != nil { + b, err := q.MarshalText() + if err != nil { + return "", err + } + if _, err := f.Write(b); err != nil { return "", err } return f.Name(), nil diff --git a/queue/queue_test.go b/queue/queue_test.go index b56b981..0887d29 100644 --- a/queue/queue_test.go +++ b/queue/queue_test.go @@ -158,29 +158,6 @@ func TestNewQueueRejectsUnparsableItem(t *testing.T) { } } -func TestScript(t *testing.T) { - s := Site{ - GetCmd: "mirror", - Name: "siteA", - } - items := []Item{ - Item{RemotePath: "/remote/foo", LocalPath: "/local", Transfer: true}, - Item{RemotePath: "/remote/bar", LocalPath: "/local", Transfer: true}, - } - q := Queue{Site: s, Items: items} - script := q.Script() - expected := `open siteA -queue mirror /remote/foo /local -queue mirror /remote/bar /local -queue start -wait -exit -` - if script != expected { - t.Fatalf("Expected %q, got %q", expected, script) - } -} - func TestDeduplicate(t *testing.T) { s := newTestSite() s.priorities = []*regexp.Regexp{ @@ -398,6 +375,33 @@ func TestReadQueueInvalidSite(t *testing.T) { } } +func TestMarshalText(t *testing.T) { + s := Site{ + GetCmd: "mirror", + Name: "siteA", + } + items := []Item{ + Item{RemotePath: "/remote/foo", LocalPath: "/local", Transfer: true}, + Item{RemotePath: "/remote/bar", LocalPath: "/local", Transfer: true}, + } + var q encoding.TextMarshaler = Queue{Site: s, Items: items} + out, err := q.MarshalText() + if err != nil { + t.Fatal(err) + } + expected := `open siteA +queue mirror /remote/foo /local +queue mirror /remote/bar /local +queue start +wait +exit +` + script := string(out) + if script != expected { + t.Fatalf("Expected %q, got %q", expected, script) + } +} + func TestMarshalJSON(t *testing.T) { s := newTestSite() var q json.Marshaler = newTestQueue(s, []os.FileInfo{file{name: "/remote/The.Wire.S01E01"}}) @@ -427,21 +431,3 @@ func TestMarshalJSON(t *testing.T) { t.Errorf("want %q, got %q", want, got) } } - -func TestMarshalText(t *testing.T) { - s := newTestSite() - var q encoding.TextMarshaler = newTestQueue(s, []os.FileInfo{file{name: "/remote/The.Wire.S01E01"}}) - out, err := q.MarshalText() - if err != nil { - t.Fatal(err) - } - want := `open test -queue mirror /remote/The.Wire.S01E01 /local/The.Wire/S1/The.Wire.S01E01 -queue start -wait -exit -` - if got := string(out); got != want { - t.Errorf("want %q, got %q", want, got) - } -} |