parent
							
								
									f805554534
								
							
						
					
					
						commit
						e63496a6b6
					
				
							
								
								
									
										11
									
								
								CHANGELOG.md
								
								
								
								
							
							
						
						
									
										11
									
								
								CHANGELOG.md
								
								
								
								
							|  | @ -2,6 +2,17 @@ | |||
| 
 | ||||
| ## Feature | ||||
| 
 | ||||
| * add subcommand local for shorthand | ||||
| * allow server to log to file | ||||
| 
 | ||||
| ## Fix | ||||
| 
 | ||||
| * Chinese breaking the format | ||||
| 
 | ||||
| # 0.1.5 | ||||
| 
 | ||||
| ## Feature | ||||
| 
 | ||||
| * add minimal basic client | ||||
| 
 | ||||
| # 0.1.4 | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ ENV PATH="/go/bin:${PATH}" | |||
| 
 | ||||
| COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo | ||||
| COPY --from=builder /go/bin/myip /go/bin/myip | ||||
| CMD ["/go/bin/myip","serve"] | ||||
| CMD ["/go/bin/myip","serve","-f","/var/log/myip.log"] | ||||
| 
 | ||||
| # use cmd instead for flexibility | ||||
| # ENTRYPOINT ["/go/bin/myip","serve"] | ||||
|  |  | |||
|  | @ -3,7 +3,7 @@ | |||
| a tool that can get your public ip | ||||
| 
 | ||||
| 
 | ||||
| ```shell | ||||
| ``` | ||||
| myip is a easy way to get public ip of current system. | ||||
| 
 | ||||
| Usage: | ||||
|  | @ -13,12 +13,12 @@ Usage: | |||
| Available Commands: | ||||
|   completion  generate the autocompletion script for the specified shell | ||||
|   help        Help about any command | ||||
|   local       short hand for `myip -altc --no-pub` | ||||
|   serve       Simple server that returns the resolved IP. | ||||
|   version     version | ||||
| 
 | ||||
| Flags: | ||||
|   -a, --all           show local ip | ||||
|   -c, --cell          show cell, must used with --list | ||||
|       --cron          run as cron service | ||||
|   -h, --help          help for myip | ||||
|   -u, --host string   hostname to connect (default "kumoly.io") | ||||
|  | @ -26,6 +26,7 @@ Flags: | |||
|   -n, --name string   tell the server who you are | ||||
|       --no-pub        disable PublicIP | ||||
|   -p, --port string   server port to connect (default "5080") | ||||
|   -c, --pretty        show table cell, must used with --list | ||||
|       --secure        use https | ||||
|   -s, --spec string   hostname to connect (default "0 */5 * * * *") | ||||
|   -t, --title         show title, used with --list | ||||
|  | @ -56,6 +57,7 @@ services: | |||
|       - 5080:5080 | ||||
|     volumes: | ||||
|       - /etc/localtime:/etc/localtime:ro | ||||
|       - ./log:/var/log | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,9 +10,10 @@ import ( | |||
| 	"os" | ||||
| 	"sort" | ||||
| 	"strings" | ||||
| 	"text/tabwriter" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/jedib0t/go-pretty/v6/table" | ||||
| 
 | ||||
| 	"github.com/robfig/cron/v3" | ||||
| 	"github.com/spf13/cobra" | ||||
| ) | ||||
|  | @ -44,9 +45,6 @@ var ClientCmd = &cobra.Command{ | |||
| 	Use:   "myip", | ||||
| 	Short: "myip is a easy way to get public ip of current system.", | ||||
| 	Run: func(cmd *cobra.Command, args []string) { | ||||
| 		if name == "" { | ||||
| 			name, _ = os.Hostname() | ||||
| 		} | ||||
| 		if cronMode { | ||||
| 			block := make(chan struct{}, 1) | ||||
| 			c := cron.New() | ||||
|  | @ -69,7 +67,7 @@ func init() { | |||
| 
 | ||||
| 	ClientCmd.Flags().BoolVarP(&showList, "list", "l", false, "show list") | ||||
| 	ClientCmd.Flags().BoolVarP(&showTitle, "title", "t", false, "show title, used with --list") | ||||
| 	ClientCmd.Flags().BoolVarP(&showCell, "cell", "c", false, "show cell, must used with --list") | ||||
| 	ClientCmd.Flags().BoolVarP(&showCell, "pretty", "c", false, "show table cell, must used with --list") | ||||
| 	ClientCmd.Flags().BoolVarP(&showAll, "all", "a", false, "show local ip") | ||||
| 
 | ||||
| 	ClientCmd.Flags().BoolVar(&noPub, "no-pub", false, "disable PublicIP") | ||||
|  | @ -81,6 +79,9 @@ func init() { | |||
| 
 | ||||
| func Scan() error { | ||||
| 	// fmt.Printf("title: %v\nlist: %v\nall: %v\ntab: %v\n", showTitle, showList, showAll, showCell)
 | ||||
| 	if name == "" { | ||||
| 		name, _ = os.Hostname() | ||||
| 	} | ||||
| 	if !showAll { | ||||
| 		if noPub { | ||||
| 			return errors.New("`--no-pub` can only be used with `--all`") | ||||
|  | @ -104,24 +105,33 @@ func Scan() error { | |||
| 			return err | ||||
| 		} | ||||
| 		if showList { | ||||
| 			var wFlag uint = 0 | ||||
| 
 | ||||
| 			t := table.NewWriter() | ||||
| 			t.SetOutputMirror(os.Stdout) | ||||
| 			if showCell { | ||||
| 				wFlag = tabwriter.Debug | ||||
| 				t.SetStyle(table.StyleLight) | ||||
| 			} else { | ||||
| 				t.Style().Options.DrawBorder = false | ||||
| 				t.Style().Options.SeparateColumns = false | ||||
| 				t.Style().Options.SeparateFooter = false | ||||
| 				t.Style().Options.SeparateHeader = false | ||||
| 				t.Style().Options.SeparateRows = false | ||||
| 			} | ||||
| 			w := tabwriter.NewWriter(os.Stdout, 0, 0, 1, ' ', wFlag) | ||||
| 			if showTitle { | ||||
| 				fmt.Fprintln(w, "\tInterface\tIP\t") | ||||
| 				t.AppendHeader(table.Row{"Interface", "IP"}) | ||||
| 				if showCell { | ||||
| 					fmt.Fprintln(w, "\t\t\t") | ||||
| 					t.AppendSeparator() | ||||
| 				} | ||||
| 			} | ||||
| 			if !noPub { | ||||
| 				fmt.Fprintf(w, "\t%v\t%v\t\n", "PublicIP", ip) | ||||
| 				t.AppendRow([]interface{}{"PublicIP", ip}) | ||||
| 			} | ||||
| 			for _, iface := range local { | ||||
| 				fmt.Fprintf(w, "\t%v\t%v\t\n", iface.Name, iface.IP) | ||||
| 				t.AppendRow([]interface{}{iface.Name, iface.IP}) | ||||
| 			} | ||||
| 			return w.Flush() | ||||
| 			t.Render() | ||||
| 			// fmt.Println(t.Render())
 | ||||
| 			return nil | ||||
| 
 | ||||
| 		} else { | ||||
| 			if !noPub { | ||||
|  |  | |||
|  | @ -0,0 +1,33 @@ | |||
| package cmd | ||||
| 
 | ||||
| import ( | ||||
| 	"github.com/spf13/cobra" | ||||
| ) | ||||
| 
 | ||||
| var LocalIPCmd = &cobra.Command{ | ||||
| 	Use:   "local", | ||||
| 	Short: "short hand for `myip -altc --no-pub`", | ||||
| 	Run: func(cmd *cobra.Command, args []string) { | ||||
| 		showList = true | ||||
| 		showTitle = true | ||||
| 		showCell = true | ||||
| 		showAll = true | ||||
| 		noPub = true | ||||
| 		revNoPub, err := cmd.Flags().GetBool("show-public") | ||||
| 		if err == nil && revNoPub { | ||||
| 			noPub = false | ||||
| 		} | ||||
| 		Scan() | ||||
| 	}, | ||||
| } | ||||
| 
 | ||||
| func init() { | ||||
| 
 | ||||
| 	LocalIPCmd.Flags().StringVarP(&port, "port", "p", "5080", "server port to connect") | ||||
| 	LocalIPCmd.Flags().StringVarP(&host, "host", "u", "kumoly.io", "hostname to connect") | ||||
| 	LocalIPCmd.Flags().StringVarP(&name, "name", "n", "", "tell the server who you are") | ||||
| 
 | ||||
| 	LocalIPCmd.Flags().BoolVar(&secure, "secure", false, "use https") | ||||
| 
 | ||||
| 	LocalIPCmd.Flags().BoolP("show-public", "P", false, "show public ip") | ||||
| } | ||||
|  | @ -2,9 +2,11 @@ package cmd | |||
| 
 | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"io" | ||||
| 	"log" | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| 	"os" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"github.com/spf13/cobra" | ||||
|  | @ -14,6 +16,15 @@ var ServerCmd = &cobra.Command{ | |||
| 	Use:   "serve", | ||||
| 	Short: "Simple server that returns the resolved IP.", | ||||
| 	Run: func(cmd *cobra.Command, args []string) { | ||||
| 		if logToFile != "" { | ||||
| 			f, err := os.OpenFile(logToFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) | ||||
| 			if err != nil { | ||||
| 				log.Fatalf("Error opening file: %v", err) | ||||
| 			} | ||||
| 			defer f.Close() | ||||
| 			mwriter := io.MultiWriter(f, os.Stderr) | ||||
| 			log.SetOutput(mwriter) | ||||
| 		} | ||||
| 		StartServer() | ||||
| 	}, | ||||
| } | ||||
|  | @ -23,11 +34,15 @@ var ( | |||
| 	// port string
 | ||||
| 
 | ||||
| 	addr string | ||||
| 
 | ||||
| 	logToFile string | ||||
| ) | ||||
| 
 | ||||
| func init() { | ||||
| 	ServerCmd.Flags().StringVarP(&port, "port", "p", "5080", "server port to listen") | ||||
| 	ServerCmd.Flags().StringVarP(&addr, "address", "b", "0.0.0.0", "address the server binds on") | ||||
| 
 | ||||
| 	ServerCmd.Flags().StringVarP(&logToFile, "log", "f", "", "log to file if filepath provided") | ||||
| } | ||||
| 
 | ||||
| func StartServer() error { | ||||
|  |  | |||
							
								
								
									
										3
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										3
									
								
								go.mod
								
								
								
								
							|  | @ -3,11 +3,14 @@ module kumoly.io/tools/myip | |||
| go 1.17 | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/jedib0t/go-pretty/v6 v6.2.4 | ||||
| 	github.com/robfig/cron/v3 v3.0.1 | ||||
| 	github.com/spf13/cobra v1.2.1 | ||||
| ) | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/inconshreveable/mousetrap v1.0.0 // indirect | ||||
| 	github.com/mattn/go-runewidth v0.0.9 // indirect | ||||
| 	github.com/spf13/pflag v1.0.5 // indirect | ||||
| 	golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect | ||||
| ) | ||||
|  |  | |||
							
								
								
									
										12
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										12
									
								
								go.sum
								
								
								
								
							|  | @ -57,6 +57,7 @@ github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3Ee | |||
| github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= | ||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||
| 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= | ||||
| github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= | ||||
| github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= | ||||
|  | @ -67,6 +68,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m | |||
| github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= | ||||
| github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= | ||||
| github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= | ||||
| github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E= | ||||
| github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | ||||
| github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= | ||||
| github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= | ||||
|  | @ -160,6 +162,8 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1: | |||
| github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= | ||||
| github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= | ||||
| github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= | ||||
| github.com/jedib0t/go-pretty/v6 v6.2.4 h1:wdaj2KHD2W+mz8JgJ/Q6L/T5dB7kyqEFI16eLq7GEmk= | ||||
| github.com/jedib0t/go-pretty/v6 v6.2.4/go.mod h1:+nE9fyyHGil+PuISTCrp7avEdo6bqoMwqZnuiK2r2a0= | ||||
| github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= | ||||
| 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= | ||||
|  | @ -173,6 +177,8 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= | |||
| 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= | ||||
| github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= | ||||
| github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= | ||||
| github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= | ||||
| github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= | ||||
| github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= | ||||
| github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= | ||||
|  | @ -188,7 +194,9 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb | |||
| github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= | ||||
| github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= | ||||
| github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= | ||||
| github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= | ||||
| github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= | ||||
| github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= | ||||
| github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= | ||||
| github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= | ||||
|  | @ -216,6 +224,7 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV | |||
| github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= | ||||
| github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= | ||||
| github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= | ||||
| github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= | ||||
| github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||
|  | @ -337,6 +346,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ | |||
| golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||
| golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
| golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= | ||||
|  | @ -377,6 +387,7 @@ golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7w | |||
| golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= | ||||
| golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= | ||||
| golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||
| golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||
|  | @ -555,6 +566,7 @@ gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | |||
| gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= | ||||
| gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= | ||||
| gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= | ||||
| gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= | ||||
| honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||
| honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue