From 40d7c1e68559af7b9deb7d7d48f5fe8b30216310 Mon Sep 17 00:00:00 2001 From: Songmu Date: Sat, 4 Nov 2023 00:27:11 +0900 Subject: [PATCH 1/2] define func newApp() --- main.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 7853284..e2be900 100644 --- a/main.go +++ b/main.go @@ -12,7 +12,7 @@ import ( var errCommandHelp = fmt.Errorf("command help shown") -func main() { +func newApp() *cli.App { app := cli.NewApp() app.Commands = []*cli.Command{ commandPull, @@ -23,8 +23,11 @@ func main() { commandRemove, } app.Version = fmt.Sprintf("%s (%s)", version, revision) - err := app.Run(os.Args) - if err != nil { + return app +} + +func main() { + if err := newApp().Run(os.Args); err != nil { if err != errCommandHelp { logf("error", "%s", err) } From bbc51725448057cd9e48c57d4388de9a2db5dbe1 Mon Sep 17 00:00:00 2001 From: Songmu Date: Sat, 4 Nov 2023 00:33:16 +0900 Subject: [PATCH 2/2] use c.App.Writer properly --- broker.go | 7 +++++-- broker_test.go | 2 +- config.go | 2 +- main.go | 12 ++++++------ 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/broker.go b/broker.go index db6d292..3a6e5c3 100644 --- a/broker.go +++ b/broker.go @@ -17,7 +17,10 @@ type broker struct { writer io.Writer } -func newBroker(bc *blogConfig) *broker { +func newBroker(bc *blogConfig, w io.Writer) *broker { + if w == nil { + w = os.Stdout + } return &broker{ Client: &atom.Client{ Client: &http.Client{ @@ -28,7 +31,7 @@ func newBroker(bc *blogConfig) *broker { }, }, blogConfig: bc, - writer: os.Stdout, + writer: w, } } diff --git a/broker_test.go b/broker_test.go index af3b415..2b346bf 100644 --- a/broker_test.go +++ b/broker_test.go @@ -89,7 +89,7 @@ func TestOriginalPath(t *testing.T) { BlogID: "example1.hatenablog.com", Username: "sample1", } - broker := newBroker(&config) + broker := newBroker(&config, nil) for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { diff --git a/config.go b/config.go index 8e68498..b248406 100644 --- a/config.go +++ b/config.go @@ -60,7 +60,7 @@ func (bc *blogConfig) fetchRootURL() string { if bc.rootURL != "" { return bc.rootURL } - b := newBroker(bc) + b := newBroker(bc, nil) u := entryEndPointUrl(bc) feed, err := b.Client.GetFeed(u) if err != nil { diff --git a/main.go b/main.go index e2be900..63967a8 100644 --- a/main.go +++ b/main.go @@ -125,7 +125,7 @@ var commandPull = &cli.Command{ return fmt.Errorf("blog not found: %s", blog) } - b := newBroker(blogConfig) + b := newBroker(blogConfig, c.App.Writer) remoteEntries, err := b.FetchRemoteEntries( !c.Bool("only-drafts"), !c.Bool("no-drafts")) if err != nil { @@ -177,7 +177,7 @@ var commandFetch = &cli.Command{ if bc == nil { return fmt.Errorf("cannot find blog for %s", path) } - b := newBroker(bc) + b := newBroker(bc, c.App.Writer) if _, err := b.StoreFresh(e, path); err != nil { return err } @@ -236,7 +236,7 @@ var commandPush = &cli.Command{ return fmt.Errorf("%q is not a blog entry", path) } entry.CustomPath = strings.TrimSuffix(stuffs[1], entryExt) - b := newBroker(bc) + b := newBroker(bc, c.App.Writer) err = b.PostEntry(entry, false) if err != nil { return err @@ -253,7 +253,7 @@ var commandPush = &cli.Command{ return fmt.Errorf("cannot find blog for %s", path) } - _, err = newBroker(bc).UploadFresh(entry) + _, err = newBroker(bc, c.App.Writer).UploadFresh(entry) if err != nil { return err } @@ -304,7 +304,7 @@ var commandPost = &cli.Command{ entry.Title = title } - b := newBroker(blogConfig) + b := newBroker(blogConfig, c.App.Writer) err = b.PostEntry(entry, c.Bool("page")) if err != nil { return err @@ -389,7 +389,7 @@ var commandRemove = &cli.Command{ return fmt.Errorf("cannot find blog for %s", path) } - err = newBroker(bc).RemoveEntry(entry, path) + err = newBroker(bc, c.App.Writer).RemoveEntry(entry, path) if err != nil { return err }