aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2018-03-01 21:42:24 +0100
committerMartin Polden <mpolden@mpolden.no>2018-03-01 21:44:16 +0100
commit8bf0d319493f3b1819279fb1ec7c30347f8ecce6 (patch)
tree806beb6597e2b615e6f001ee90ea28399996d293
parentfdcf4ae11be7ea936adf5a1abe1c122605594b1e (diff)
Remove unnecessary method
-rw-r--r--cmd/lftpq/main.go10
-rw-r--r--cmd/lftpq/main_test.go2
-rw-r--r--queue/queue.go52
-rw-r--r--queue/queue_test.go68
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)
- }
-}