Skip to content

Commit fecf76f

Browse files
authored
Merge pull request #19 from kindlyops/zerolog
Improve logging with zerolog
2 parents eb07f30 + 7634363 commit fecf76f

210 files changed

Lines changed: 11620 additions & 1775 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

BUILD.bazel

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ copy_file(
7979
out = "bdist/vbs_windows_amd64/vbs.exe",
8080
)
8181

82-
8382
go_test(
8483
name = "go_default_test",
8584
size = "small",

cmd/BUILD.bazel

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ go_library(
1515
"//vendor/github.com/aws/aws-sdk-go/service/ivs:go_default_library",
1616
"//vendor/github.com/hypebeast/go-osc/osc:go_default_library",
1717
"//vendor/github.com/kennygrant/sanitize:go_default_library",
18+
"//vendor/github.com/mattn/go-isatty:go_default_library",
1819
"//vendor/github.com/mitchellh/go-homedir:go_default_library",
20+
"//vendor/github.com/rs/zerolog:go_default_library",
21+
"//vendor/github.com/rs/zerolog/log:go_default_library",
1922
"//vendor/github.com/spf13/cobra:go_default_library",
2023
"//vendor/github.com/spf13/viper:go_default_library",
2124
],

cmd/chapters.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ package cmd
1717
import (
1818
"encoding/json"
1919
"fmt"
20-
"log"
2120
"os"
2221
"os/exec"
2322
"path"
@@ -26,6 +25,7 @@ import (
2625
"sync"
2726

2827
"github.com/kennygrant/sanitize"
28+
"github.com/rs/zerolog/log"
2929
"github.com/spf13/cobra"
3030
)
3131

@@ -50,20 +50,20 @@ func chapterSplit(cmd *cobra.Command, args []string) {
5050
_, err := exec.LookPath("ffprobe")
5151

5252
if err != nil {
53-
log.Fatal("Could not find ffprobe. Please install ffmpeg and ffprobe.")
53+
log.Fatal().Err(err).Msg("Could not find ffprobe. Please install ffmpeg and ffprobe.")
5454
}
5555

5656
_, err = exec.LookPath("ffmpeg")
5757

5858
if err != nil {
59-
log.Fatal("Could not find ffmpeg. Please install ffmpeg.")
59+
log.Fatal().Err(err).Msg("Could not find ffmpeg. Please install ffmpeg.")
6060
}
6161

6262
target := args[0]
6363
_, err = os.Stat(target)
6464

6565
if err != nil {
66-
log.Fatal("Could not access video container ", target)
66+
log.Fatal().Err(err).Msgf("Could not access video container %s", target)
6767
}
6868

6969
data, err := getChapters(target)
@@ -72,7 +72,7 @@ func chapterSplit(cmd *cobra.Command, args []string) {
7272
err = os.MkdirAll(targetdir, 0777)
7373

7474
if err != nil {
75-
log.Fatal(err)
75+
log.Fatal().Err(err).Msg("Could not create output directory")
7676
}
7777

7878
var wg sync.WaitGroup
@@ -105,7 +105,7 @@ func copyChapter(wg *sync.WaitGroup, c chapter, sourcefile, targetdir string) er
105105
output, err := cmd.CombinedOutput()
106106

107107
if err != nil {
108-
fmt.Printf("%s: %s\n", outfile, output)
108+
log.Error().Err(err).Msgf("%s: %s\n", outfile, output)
109109
}
110110

111111
return err
@@ -167,31 +167,31 @@ func chapterList(cmd *cobra.Command, args []string) {
167167
_, err := exec.LookPath("ffprobe")
168168

169169
if err != nil {
170-
log.Fatal("Could not find ffprobe. Please install ffmpeg and ffprobe.")
170+
log.Fatal().Err(err).Msg("Could not find ffprobe. Please install ffmpeg and ffprobe.")
171171
}
172172

173173
_, err = exec.LookPath("ffmpeg")
174174

175175
if err != nil {
176-
log.Fatal("Could not find ffmpeg. Please install ffmpeg.")
176+
log.Fatal().Err(err).Msg("Could not find ffmpeg. Please install ffmpeg.")
177177
}
178178

179179
target := args[0]
180180
_, err = os.Stat(target)
181181

182182
if err != nil {
183-
log.Fatal("Could not access video container ", target)
183+
log.Fatal().Err(err).Msgf("Could not access video container %s", target)
184184
}
185185

186186
data, err := getChapters(target)
187187

188188
if err != nil {
189-
log.Fatal("Problem getting chapter data ", err)
189+
log.Fatal().Err(err).Msg("Problem getting chapter data")
190190
}
191191

192192
formattedJSON, err := json.MarshalIndent(data, "", " ")
193193
if err != nil {
194-
log.Fatal(err)
194+
log.Fatal().Err(err).Msg("Trouble marshalling to JSON")
195195
}
196196

197197
_, _ = os.Stdout.Write(formattedJSON)

cmd/ivs.go

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ package cmd
1616

1717
import (
1818
"fmt"
19-
"log"
2019

2120
"github.com/aws/aws-sdk-go/aws"
2221
"github.com/aws/aws-sdk-go/aws/session"
2322
"github.com/aws/aws-sdk-go/service/ivs"
2423
"github.com/hypebeast/go-osc/osc"
24+
"github.com/rs/zerolog/log"
2525
"github.com/spf13/cobra"
2626
)
2727

@@ -45,18 +45,14 @@ func ivsOscBridge(cmd *cobra.Command, args []string) {
4545
arn := args[0]
4646
addr := "127.0.0.1:" + Port
4747

48-
if Debug {
49-
log.Printf("Listening on port: '%s'\n", addr)
50-
}
48+
log.Debug().Msgf("Listening on port: '%s'\n", addr)
5149

5250
s := session.Must(session.NewSession())
5351
svc := ivs.New(s)
5452

5553
d := osc.NewStandardDispatcher()
5654
d.AddMsgHandler("/vbs/ivsbridge", func(msg *osc.Message) {
57-
if Debug {
58-
osc.PrintMessage(msg)
59-
}
55+
log.Debug().Msg(msg.String())
6056
data := fmt.Sprintf("%v", msg.Arguments[0])
6157
input := &ivs.PutMetadataInput{
6258
ChannelArn: aws.String(arn),
@@ -65,9 +61,7 @@ func ivsOscBridge(cmd *cobra.Command, args []string) {
6561

6662
_, err := svc.PutMetadata(input)
6763
if err != nil {
68-
if Debug {
69-
log.Printf("error from ivs.PutMetadata: %s", err.Error())
70-
}
64+
log.Debug().Err(err).Msg("error from ivs.PutMetadata")
7165
}
7266
})
7367

@@ -78,19 +72,15 @@ func ivsOscBridge(cmd *cobra.Command, args []string) {
7872

7973
err := server.ListenAndServe()
8074
if err != nil {
81-
if Debug {
82-
log.Printf("error from server.ListenAndServe: %s", err.Error())
83-
}
75+
log.Error().Err(err).Msg("error from server.ListenAndServe")
8476
}
8577
}
8678

8779
func ivsPutMetadata(cmd *cobra.Command, args []string) {
8880
arn := args[0]
8981
data := args[1]
9082

91-
if Debug {
92-
log.Printf("got data: '%s'\n", data)
93-
}
83+
log.Debug().Msgf("got data: '%s'\n", data)
9484

9585
s := session.Must(session.NewSession())
9686
svc := ivs.New(s)
@@ -101,7 +91,7 @@ func ivsPutMetadata(cmd *cobra.Command, args []string) {
10191

10292
_, err := svc.PutMetadata(input)
10393
if err != nil {
104-
log.Fatalf("error from ivs.PutMetadata: %s", err.Error())
94+
log.Fatal().Err(err).Msg("error from ivs.PutMetadata")
10595
}
10696
}
10797

cmd/root.go

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ package cmd
1717
import (
1818
"fmt"
1919
"os"
20+
"time"
2021

22+
"github.com/mattn/go-isatty"
2123
homedir "github.com/mitchellh/go-homedir"
24+
"github.com/rs/zerolog"
25+
"github.com/rs/zerolog/log"
2226
"github.com/spf13/cobra"
2327
"github.com/spf13/viper"
2428
)
@@ -56,12 +60,20 @@ use at your own risk.
5660
func Execute(v string) {
5761
rootCmd.SetVersionTemplate(v)
5862
if err := rootCmd.Execute(); err != nil {
59-
fmt.Println(err)
63+
log.Error().Err(err).Msg("error running root command")
6064
os.Exit(1)
6165
}
6266
}
6367

6468
func init() {
69+
zerolog.TimeFieldFormat = time.RFC3339
70+
if isatty.IsTerminal(os.Stdout.Fd()) {
71+
output := zerolog.ConsoleWriter{Out: os.Stderr}
72+
log.Logger = log.With().Caller().Logger().Output(output)
73+
} else {
74+
log.Logger = log.With().Caller().Logger()
75+
}
76+
6577
cobra.OnInitialize(initConfig)
6678

6779
// Here you will define your flags and configuration settings.
@@ -81,7 +93,7 @@ func initConfig() {
8193
// Find home directory.
8294
home, err := homedir.Dir()
8395
if err != nil {
84-
fmt.Println(err)
96+
log.Error().Stack().Err(err).Msg("Couldn't locate home dir")
8597
os.Exit(1)
8698
}
8799

@@ -94,6 +106,10 @@ func initConfig() {
94106

95107
// If a config file is found, read it in.
96108
if err := viper.ReadInConfig(); err == nil {
97-
fmt.Println("Using config file:", viper.ConfigFileUsed())
109+
log.Info().Msg(fmt.Sprintf("Using config file: %s", viper.ConfigFileUsed()))
110+
}
111+
112+
if Debug {
113+
zerolog.SetGlobalLevel(zerolog.DebugLevel)
98114
}
99115
}

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ require (
88
github.com/bazelbuild/rules_go v0.23.1
99
github.com/hypebeast/go-osc v0.0.0-20200115085105-85fee7fed692
1010
github.com/kennygrant/sanitize v1.2.4
11+
github.com/mattn/go-isatty v0.0.3
1112
github.com/mitchellh/go-homedir v1.1.0
13+
github.com/rs/zerolog v1.22.0
1214
github.com/spf13/cobra v0.0.7
1315
github.com/spf13/viper v1.7.0
1416
github.com/stretchr/testify v1.5.1 // indirect

go.sum

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czP
131131
github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
132132
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
133133
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
134+
github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI=
134135
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
135136
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
136137
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
@@ -168,6 +169,9 @@ github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7z
168169
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
169170
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
170171
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
172+
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
173+
github.com/rs/zerolog v1.22.0 h1:XrVUjV4K+izZpKXZHlPrYQiDtmdGiCylnT4i43AAWxg=
174+
github.com/rs/zerolog v1.22.0/go.mod h1:ZPhntP/xmq1nnND05hhpAh2QMhSsA4UN3MGZ6O2J3hM=
171175
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
172176
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
173177
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
@@ -205,6 +209,7 @@ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1
205209
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
206210
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
207211
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
212+
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
208213
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
209214
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
210215
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
@@ -216,6 +221,7 @@ golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnf
216221
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
217222
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
218223
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
224+
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
219225
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
220226
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
221227
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -235,6 +241,7 @@ golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU
235241
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
236242
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
237243
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
244+
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
238245
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
239246
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
240247
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -252,6 +259,7 @@ golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR
252259
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
253260
golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI=
254261
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
262+
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
255263
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=
256264
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
257265
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -262,6 +270,7 @@ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJ
262270
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
263271
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
264272
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
273+
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
265274
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
266275
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
267276
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -279,6 +288,8 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0 h1:HyfiK1WMnHj5FXFXatD+Qs1A/
279288
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
280289
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f h1:+Nyd8tzPX9R7BWHguqsrbFdRx3WQ/1ib8I44HXV5yTA=
281290
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
291+
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k=
292+
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
282293
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
283294
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
284295
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -305,7 +316,11 @@ golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtn
305316
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
306317
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
307318
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
319+
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
320+
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
308321
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
322+
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
323+
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
309324
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
310325
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
311326
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=

vendor/github.com/mattn/go-isatty/.travis.yml

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/mattn/go-isatty/BUILD.bazel

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/mattn/go-isatty/LICENSE

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)