Skip to content

Commit 50aea29

Browse files
committed
update editor
1 parent b351c85 commit 50aea29

File tree

5 files changed

+260
-166
lines changed

5 files changed

+260
-166
lines changed

go.mod

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ require (
77
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc
88
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect
99
github.com/bitly/go-nsq v1.0.7
10-
github.com/davecgh/go-spew v1.1.1 // indirect
10+
github.com/ghodss/yaml v1.0.0
1111
github.com/go-sql-driver/mysql v1.4.1
12+
github.com/gobuffalo/packr v1.30.1
1213
github.com/golang/mock v1.4.3
1314
github.com/golang/snappy v0.0.1 // indirect
1415
github.com/gomodule/redigo v2.0.0+incompatible
1516
github.com/jmoiron/sqlx v1.2.0
1617
github.com/joho/godotenv v1.3.0
1718
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 // indirect
18-
github.com/kr/pretty v0.1.0 // indirect
1919
github.com/lib/pq v1.0.0
2020
github.com/mattn/go-colorable v0.1.2 // indirect
2121
github.com/mattn/go-runewidth v0.0.4 // indirect
@@ -32,10 +32,7 @@ require (
3232
github.com/yudai/gojsondiff v1.0.0
3333
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 // indirect
3434
github.com/yudai/pp v2.0.1+incompatible // indirect
35-
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 // indirect
36-
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438 // indirect
3735
google.golang.org/appengine v1.5.0 // indirect
3836
gopkg.in/alecthomas/kingpin.v2 v2.2.6
39-
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
4037
gopkg.in/yaml.v2 v2.2.2
4138
)

go.sum

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,14 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME
2323
github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
2424
github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA=
2525
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
26+
github.com/gobuffalo/envy v1.7.0 h1:GlXgaiBkmrYMHco6t4j7SacKO4XUjvh5pwXh0f4uxXU=
27+
github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI=
28+
github.com/gobuffalo/logger v1.0.0/go.mod h1:2zbswyIUa45I+c+FLXuWl9zSWEiVuthsk8ze5s8JvPs=
29+
github.com/gobuffalo/packd v0.3.0 h1:eMwymTkA1uXsqxS0Tpoop3Lc0u3kTfiMBE6nKtQU4g4=
30+
github.com/gobuffalo/packd v0.3.0/go.mod h1:zC7QkmNkYVGKPw4tHpBQ+ml7W/3tIebgeo1b36chA3Q=
31+
github.com/gobuffalo/packr v1.30.1 h1:hu1fuVR3fXEZR7rXNW3h8rqSML8EVAf6KNm0NKO/wKg=
32+
github.com/gobuffalo/packr v1.30.1/go.mod h1:ljMyFO2EcrnzsHsN99cvbq055Y9OhRrIaviy289eRuk=
33+
github.com/gobuffalo/packr/v2 v2.5.1/go.mod h1:8f9c96ITobJlPzI44jj+4tHnEKNt0xXWSVlXRN9X1Iw=
2634
github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw=
2735
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
2836
github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM=
@@ -41,6 +49,9 @@ github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc=
4149
github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
4250
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88 h1:uC1QfSlInpQF+M0ao65imhwqKnz3Q2z/d8PWZRMQvDM=
4351
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
52+
github.com/karrick/godirwalk v1.10.12/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
53+
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
54+
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
4455
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
4556
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
4657
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
@@ -92,8 +103,12 @@ github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94 h1:0ngsPmuP6XIjiFRN
92103
github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw=
93104
github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
94105
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
106+
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
107+
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
108+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
95109
github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
96110
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
111+
github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
97112
github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw=
98113
github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA=
99114
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
@@ -103,7 +118,9 @@ github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82 h1:BHyfKlQyqbsFN5p3Ifn
103118
github.com/yudai/golcs v0.0.0-20170316035057-ecda9a501e82/go.mod h1:lgjkn3NuSvDfVJdfcVVdX+jpBxNmX4rDAzaS45IcYoM=
104119
github.com/yudai/pp v2.0.1+incompatible h1:Q4//iY4pNF6yPLZIigmvcl7k/bPgrcTPIFIcmawg5bI=
105120
github.com/yudai/pp v2.0.1+incompatible/go.mod h1:PuxR/8QJ7cyCkFp/aUDS+JY727OFEZkTdatxwunjIkc=
121+
golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
106122
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
123+
golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
107124
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
108125
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd h1:nTDtHvHSdCn1m6ITfMRqtOd/9+7a3s8RBNOZ3eYZzJA=
109126
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -116,15 +133,19 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEha
116133
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
117134
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e h1:o3PsSEY8E4eXWkXrIP9YJALUkVZqzHJT5DOasTyn8Vs=
118135
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
136+
golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
119137
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
120138
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8=
121139
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
140+
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
141+
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
122142
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438 h1:khxRGsvPk4n2y8I/mLLjp7e5dMTJmH75wvqS6nMwUtY=
123143
golang.org/x/sys v0.0.0-20190515120540-06a5c4944438/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
124144
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
125145
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
126146
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
127147
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
148+
golang.org/x/tools v0.0.0-20190624180213-70d37148ca0c/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
128149
google.golang.org/appengine v1.5.0 h1:KxkO13IPW4Lslp2bz+KHP2E3gtFlrIGNThxkZQ3g+4c=
129150
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
130151
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
@@ -133,6 +154,7 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+
133154
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
134155
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
135156
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
157+
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
136158
gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
137159
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
138160
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=

main.go

Lines changed: 2 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,18 @@
11
package main
22

33
import (
4-
"bytes"
5-
"encoding/json"
6-
"fmt"
7-
"html/template"
8-
"io/ioutil"
94
"log"
10-
"net"
11-
"net/http"
125
"os"
13-
"os/exec"
14-
"os/signal"
15-
"runtime"
166
"strings"
17-
"syscall"
187

198
"github.com/DATA-DOG/godog/colors"
20-
"github.com/ghodss/yaml"
21-
"github.com/gobuffalo/packr"
229
"github.com/joho/godotenv"
23-
"github.com/oklog/run"
2410
"github.com/pkg/errors"
2511
"github.com/urfave/cli"
2612

2713
"github.com/tomatool/tomato/config"
2814
"github.com/tomatool/tomato/tomato"
15+
"github.com/tomatool/tomato/web"
2916
)
3017

3118
// AppHelpTemplate is the text template for the Default help topic.
@@ -65,7 +52,7 @@ func main() {
6552
cli.Command{
6653
Name: "edit",
6754
Description: "edit tomato related file",
68-
Action: editServer,
55+
Action: web.New().Handler,
6956
},
7057
cli.Command{
7158
Name: "run",
@@ -121,140 +108,3 @@ func main() {
121108
os.Exit(1)
122109
}
123110
}
124-
125-
func openbrowser(url string) (err error) {
126-
switch runtime.GOOS {
127-
case "linux":
128-
err = exec.Command("xdg-open", url).Start()
129-
case "windows":
130-
err = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()
131-
case "darwin":
132-
err = exec.Command("open", url).Start()
133-
default:
134-
err = fmt.Errorf("unsupported platform")
135-
}
136-
return
137-
}
138-
139-
func yamlToJSON(y []byte) (map[string]interface{}, error) {
140-
by, err := yaml.YAMLToJSON(y)
141-
if err != nil {
142-
return nil, err
143-
}
144-
145-
result := make(map[string]interface{})
146-
if err := json.Unmarshal(by, &result); err != nil {
147-
return nil, err
148-
}
149-
return result, nil
150-
}
151-
152-
func setupResponse(w *http.ResponseWriter, req *http.Request) {
153-
(*w).Header().Set("Access-Control-Allow-Origin", "*")
154-
(*w).Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
155-
(*w).Header().Set("Access-Control-Allow-Headers", "Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization")
156-
}
157-
158-
func editServer(ctx *cli.Context) error {
159-
var g run.Group
160-
var configPath string
161-
if len(ctx.Args()) == 1 {
162-
configPath = ctx.Args()[0]
163-
}
164-
if configPath == "" {
165-
return errors.New("This command takes one argument: <config path>\nFor additional help try 'tomato edit -help'")
166-
}
167-
168-
l, err := net.Listen("tcp", "127.0.0.1:0")
169-
if err != nil {
170-
return err
171-
}
172-
printErr := func(err error) {
173-
l.Close()
174-
if err != nil {
175-
log.Printf(colors.Bold(colors.Red)("ERR: %v"), err)
176-
}
177-
}
178-
g.Add(func() error {
179-
180-
if err := openbrowser("http://" + l.Addr().String() + "/index.html"); err != nil {
181-
return err
182-
}
183-
184-
box := packr.NewBox(".")
185-
186-
return http.Serve(l, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
187-
if r.Header.Get("client") != "" {
188-
setupResponse(&w, r)
189-
switch r.Method {
190-
case http.MethodGet:
191-
dict, err := box.Find("./dictionary.yml")
192-
if err != nil {
193-
http.Error(w, err.Error(), http.StatusInternalServerError)
194-
return
195-
}
196-
dictMap, err := yamlToJSON(dict)
197-
if err != nil {
198-
http.Error(w, err.Error(), http.StatusInternalServerError)
199-
return
200-
}
201-
cfg, err := ioutil.ReadFile(configPath)
202-
if err != nil {
203-
http.Error(w, err.Error(), http.StatusInternalServerError)
204-
return
205-
}
206-
config, err := yamlToJSON(cfg)
207-
if err != nil {
208-
http.Error(w, err.Error(), http.StatusInternalServerError)
209-
return
210-
}
211-
212-
b, err := json.Marshal(map[string]interface{}{
213-
"config": config,
214-
"dictionary": dictMap,
215-
})
216-
if err != nil {
217-
http.Error(w, err.Error(), http.StatusInternalServerError)
218-
return
219-
}
220-
w.Header().Set("Content-Type", "application/json")
221-
w.Write(b)
222-
return
223-
}
224-
} else {
225-
if r.URL.Path == "" {
226-
index, err := box.Find("./ui/build/index.html")
227-
if err != nil {
228-
http.Error(w, err.Error(), http.StatusInternalServerError)
229-
return
230-
}
231-
var buf bytes.Buffer
232-
233-
t := template.Must(template.New("config").Parse(string(index)))
234-
if err := t.ExecuteTemplate(&buf, "config", map[string]string{"ServerURL": "http://" + l.Addr().String()}); err != nil {
235-
http.Error(w, err.Error(), http.StatusInternalServerError)
236-
return
237-
}
238-
239-
w.Write(index)
240-
return
241-
}
242-
243-
fs := http.FileServer(http.Dir("./ui/build"))
244-
fs.ServeHTTP(w, r)
245-
}
246-
}))
247-
}, printErr)
248-
249-
term := make(chan os.Signal, 1)
250-
signal.Notify(term, os.Interrupt, syscall.SIGTERM)
251-
g.Add(func() error {
252-
select {
253-
case <-term:
254-
log.Printf(colors.Bold(colors.Yellow)("Received SIGTERM, exiting gracefully..."))
255-
}
256-
return nil
257-
}, printErr)
258-
259-
return g.Run()
260-
}

vendor/modules.txt

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,21 @@ github.com/alecthomas/units
1414
## explicit
1515
github.com/bitly/go-nsq
1616
# github.com/davecgh/go-spew v1.1.1
17-
## explicit
1817
github.com/davecgh/go-spew/spew
1918
# github.com/ghodss/yaml v1.0.0
19+
## explicit
2020
github.com/ghodss/yaml
2121
# github.com/go-sql-driver/mysql v1.4.1
2222
## explicit
2323
github.com/go-sql-driver/mysql
24+
# github.com/gobuffalo/envy v1.7.0
25+
github.com/gobuffalo/envy
26+
# github.com/gobuffalo/packd v0.3.0
27+
github.com/gobuffalo/packd
28+
github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx
29+
# github.com/gobuffalo/packr v1.30.1
30+
## explicit
31+
github.com/gobuffalo/packr
2432
# github.com/golang/mock v1.4.3
2533
## explicit
2634
github.com/golang/mock/gomock
@@ -41,8 +49,6 @@ github.com/jmoiron/sqlx/types
4149
github.com/joho/godotenv
4250
# github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88
4351
## explicit
44-
# github.com/kr/pretty v0.1.0
45-
## explicit
4652
# github.com/lib/pq v1.0.0
4753
## explicit
4854
github.com/lib/pq
@@ -54,6 +60,9 @@ github.com/lib/pq/oid
5460
github.com/mattn/go-runewidth
5561
# github.com/nsqio/go-nsq v1.0.7
5662
## explicit
63+
# github.com/oklog/run v1.1.0
64+
## explicit
65+
github.com/oklog/run
5766
# github.com/olekukonko/tablewriter v0.0.1
5867
## explicit
5968
github.com/olekukonko/tablewriter
@@ -91,18 +100,12 @@ github.com/yudai/gojsondiff/formatter
91100
github.com/yudai/golcs
92101
# github.com/yudai/pp v2.0.1+incompatible
93102
## explicit
94-
# golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3
95-
## explicit
96-
# golang.org/x/sys v0.0.0-20190515120540-06a5c4944438
97-
## explicit
98103
# google.golang.org/appengine v1.5.0
99104
## explicit
100105
google.golang.org/appengine/cloudsql
101106
# gopkg.in/alecthomas/kingpin.v2 v2.2.6
102107
## explicit
103108
gopkg.in/alecthomas/kingpin.v2
104-
# gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127
105-
## explicit
106109
# gopkg.in/yaml.v2 v2.2.2
107110
## explicit
108111
gopkg.in/yaml.v2

0 commit comments

Comments
 (0)