Skip to content

Commit

Permalink
update: trace error
Browse files Browse the repository at this point in the history
Signed-off-by: K8sCat <k8scat@gmail.com>
  • Loading branch information
k8scat committed Jan 8, 2023
1 parent 63cef12 commit 13ba853
Show file tree
Hide file tree
Showing 41 changed files with 265 additions and 196 deletions.
4 changes: 2 additions & 2 deletions cmd/articli/main.go
@@ -1,13 +1,13 @@
package main

import (
"errors"
"fmt"
"os"
"path/filepath"
"runtime/debug"
"strings"

"github.com/juju/errors"
"github.com/spf13/cobra"

"github.com/k8scat/articli/internal/cmd/platform"
Expand Down Expand Up @@ -72,7 +72,7 @@ func main() {
rootCmd.AddCommand(platform.AuthCmd)

if err := rootCmd.Execute(); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
fmt.Fprintf(os.Stderr, "%+v\n", err)
os.Exit(1)
}
}
4 changes: 1 addition & 3 deletions go.mod
Expand Up @@ -6,6 +6,7 @@ require (
github.com/EDDYCJY/fake-useragent v0.2.0
github.com/antchfx/htmlquery v1.2.5
github.com/gomarkdown/markdown v0.0.0-20220114203417-14399d5448c4
github.com/juju/errors v1.0.0
github.com/k8scat/aliyun-api-gateway-sign-golang v0.1.2
github.com/mitchellh/go-homedir v1.1.0
github.com/spf13/cobra v1.3.0
Expand All @@ -22,13 +23,10 @@ require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/inconshreveable/mousetrap v1.0.0 // indirect
github.com/kr/text v0.2.0 // indirect
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/tidwall/match v1.1.1 // indirect
github.com/tidwall/pretty v1.2.0 // indirect
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2 // indirect
golang.org/x/text v0.3.7 // indirect
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect
)
10 changes: 4 additions & 6 deletions go.sum
Expand Up @@ -99,7 +99,6 @@ github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490/go.mod h1:eXthEFrGJvWH
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
Expand Down Expand Up @@ -246,6 +245,8 @@ github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/juju/errors v1.0.0 h1:yiq7kjCLll1BiaRuNY53MGI0+EQ3rF6GB+wvboZDefM=
github.com/juju/errors v1.0.0/go.mod h1:B5x9thDqx0wIMH3+aLIMP9HjItInYWObRovoCFM5Qe8=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/k8scat/aliyun-api-gateway-sign-golang v0.1.2 h1:L4vhg4HLXw8f5OSvd5CuEx6t0MZTHFoNTQhSN2Ivz4w=
github.com/k8scat/aliyun-api-gateway-sign-golang v0.1.2/go.mod h1:WjkkuQKH5vQO0aSiQlCASslI1KnCIhx5pldY0B1Fpy8=
Expand All @@ -256,10 +257,10 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w=
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
Expand Down Expand Up @@ -290,8 +291,6 @@ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lN
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
Expand Down Expand Up @@ -774,8 +773,7 @@ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLks
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
Expand Down
3 changes: 2 additions & 1 deletion internal/cache/cache.go
Expand Up @@ -5,6 +5,7 @@ import (
"os"
"path"

"github.com/juju/errors"
"github.com/k8scat/articli/internal/config"
)

Expand Down Expand Up @@ -41,7 +42,7 @@ func NewLocalCache(file string) (*LocalCache, error) {
file: file,
}
if err := c.load(); err != nil {
return nil, err
return nil, errors.Trace(err)
}
return c, nil
}
Expand Down
7 changes: 4 additions & 3 deletions internal/cmd/platform/auth.go
Expand Up @@ -3,6 +3,7 @@ package platform
import (
"fmt"

"github.com/juju/errors"
"github.com/spf13/cobra"

"github.com/k8scat/articli/internal/config"
Expand All @@ -19,18 +20,18 @@ var (
RunE: func(cmd *cobra.Command, args []string) error {
pf, err := platform.GetByName(PfName)
if err != nil {
return err
return errors.Trace(err)
}

loggedIn, err := pf.Auth(rawAuth)
if err != nil {
return err
return errors.Trace(err)
}

config.Cfg.SetAuth(PfName, rawAuth)
err = config.Save()
if err != nil {
return err
return errors.Trace(err)
}

fmt.Printf("Logged in as %s\n", loggedIn)
Expand Down
16 changes: 11 additions & 5 deletions internal/cmd/platform/publish.go
Expand Up @@ -3,7 +3,9 @@ package platform
import (
"fmt"
"os"
"time"

"github.com/juju/errors"
"github.com/spf13/cobra"

"github.com/k8scat/articli/internal/config"
Expand All @@ -20,24 +22,28 @@ var (
RunE: func(cmd *cobra.Command, args []string) error {
pf, err := platform.GetByName(PfName)
if err != nil {
return err
return errors.Trace(err)
}
t := time.Now()
if _, err := pf.Auth(config.Cfg.Auth[pf.Name()]); err != nil {
return err
return errors.Trace(err)
}
fmt.Printf("auth took %v\n", time.Since(t))

f, err := os.Open(file)
if err != nil {
return err
return errors.Trace(err)
}
if err = pf.NewArticle(f); err != nil {
return err
return errors.Trace(err)
}

t = time.Now()
url, err := pf.Publish()
if err != nil {
return err
return errors.Trace(err)
}
fmt.Printf("publish took %v\n", time.Since(t))
fmt.Printf("article url: %s\n", url)
return nil
},
Expand Down
9 changes: 5 additions & 4 deletions internal/config/config.go
Expand Up @@ -5,6 +5,7 @@ import (
"os"
"path/filepath"

"github.com/juju/errors"
"github.com/mitchellh/go-homedir"

"gopkg.in/yaml.v3"
Expand Down Expand Up @@ -34,7 +35,7 @@ func (c *Config) SetAuth(name, rawAuth string) {
func Parse() error {
c, err := parse(CfgFile)
if err != nil {
return err
return errors.Trace(err)
}
Cfg = c
return nil
Expand All @@ -48,7 +49,7 @@ func Save() error {
func parse(f string) (*Config, error) {
b, err := os.ReadFile(f)
if err != nil {
return nil, err
return nil, errors.Trace(err)
}
cfg := new(Config)
err = yaml.Unmarshal(b, &cfg)
Expand All @@ -58,10 +59,10 @@ func parse(f string) (*Config, error) {
func save(f string, cfg *Config) error {
b, err := yaml.Marshal(cfg)
if err != nil {
return err
return errors.Trace(err)
}
err = os.WriteFile(f, b, 0644)
return err
return errors.Trace(err)
}

func GetConfigDir() string {
Expand Down
10 changes: 9 additions & 1 deletion internal/markdown/helper.go
@@ -1,6 +1,10 @@
package markdown

import "github.com/k8scat/articli/pkg/markdown"
import (
"fmt"

"github.com/k8scat/articli/pkg/markdown"
)

func ParseMarkdownContent(mark *markdown.Mark, platformMata markdown.Meta) string {
markdownContent := mark.Content
Expand All @@ -20,3 +24,7 @@ func ParseMarkdownContent(mark *markdown.Mark, platformMata markdown.Meta) strin
}
return markdownContent
}

func AddImagePrefix(content, imageURL string) string {
return fmt.Sprintf("![image](%s)\n\n%s", imageURL, content)
}
5 changes: 3 additions & 2 deletions pkg/csdn/api_gateway.go
@@ -1,6 +1,7 @@
package csdn

import (
"github.com/juju/errors"
sign "github.com/k8scat/aliyun-api-gateway-sign-golang"
)

Expand All @@ -12,7 +13,7 @@ var (
func initResourceGateway() error {
gateway, err := sign.NewAPIGateway(ResourceAppKey, ResourceAppSecret)
if err != nil {
return err
return errors.Trace(err)
}
ResourceGateway = gateway
return nil
Expand All @@ -21,7 +22,7 @@ func initResourceGateway() error {
func initUserGateway() error {
gateway, err := sign.NewAPIGateway(UserAppKey, UserAppSecret)
if err != nil {
return err
return errors.Trace(err)
}
UserGateway = gateway
return nil
Expand Down
15 changes: 8 additions & 7 deletions pkg/csdn/article.go
Expand Up @@ -3,11 +3,12 @@ package csdn
import (
"bytes"
"encoding/json"
"errors"
"fmt"
"io"
"net/http"
"strconv"

"github.com/juju/errors"
)

type SaveArticleResponse struct {
Expand All @@ -25,33 +26,33 @@ func (c *Client) saveArticle() (string, error) {
rawurl := buildBizAPIURL("/blog-console-api/v3/mdeditor/saveArticle")
b, err := json.Marshal(c.params)
if err != nil {
return "", err
return "", errors.Trace(err)
}

if ResourceGateway == nil {
if err = initResourceGateway(); err != nil {
return "", err
return "", errors.Trace(err)
}
}

body := bytes.NewReader(b)
resp, err := c.post(rawurl, nil, body, ResourceGateway)
if err != nil {
return "", err
return "", errors.Trace(err)
}

defer resp.Body.Close()
b, err = io.ReadAll(resp.Body)
if err != nil {
return "", err
return "", errors.Trace(err)
}
if resp.StatusCode != http.StatusOK {
return "", fmt.Errorf("request failed %d: %s", resp.StatusCode, b)
return "", errors.Errorf("request failed %d: %s", resp.StatusCode, b)
}

var result *SaveArticleResponse
if err = json.Unmarshal(b, &result); err != nil {
return "", err
return "", errors.Trace(err)
}
if result.Code != 200 {
return "", errors.New(result.Message)
Expand Down
9 changes: 5 additions & 4 deletions pkg/csdn/client.go
Expand Up @@ -3,6 +3,7 @@ package csdn
import (
"io"

"github.com/juju/errors"
"github.com/k8scat/articli/pkg/markdown"
)

Expand Down Expand Up @@ -45,24 +46,24 @@ func (c *Client) Auth(cookie string) (string, error) {
var err error
info, err := c.getAuthInfo()
if err != nil {
return "", err
return "", errors.Trace(err)
}
return info.Basic.Nickname, nil
}

func (c *Client) NewArticle(r io.Reader) error {
mark, err := markdown.Parse(r)
if err != nil {
return err
return errors.Trace(err)
}
c.params, err = c.parseMark(mark)
return err
return errors.Trace(err)
}

func (c *Client) Publish() (string, error) {
url, err := c.saveArticle()
if err != nil {
return "", err
return "", errors.Trace(err)
}
return url, nil
}

0 comments on commit 13ba853

Please sign in to comment.