Browse Source

可以本地用浏览打开

main
cobb 3 years ago
parent
commit
4d7229ccc6
  1. 2
      Dockerfile
  2. 28
      main.go

2
Dockerfile

@ -13,7 +13,7 @@ RUN go mod download
COPY dist ./dist
COPY html.go html.go
COPY main.go main.go
RUN go build -ldflags "-w -s" -o json-gen .
RUN go build -ldflags "-w -s -X main.Open=false" -o json-gen .
# runtime
FROM alpine:latest

28
main.go

@ -6,6 +6,8 @@ import (
"io"
"io/fs"
"net/http"
"os/exec"
"runtime"
"sort"
"strings"
"sync"
@ -54,6 +56,24 @@ var defaultOptions = options{
Package: "model",
}
var Open = ""
func OpenBrowser(url string) {
var err error
switch runtime.GOOS {
case "linux":
err = exec.Command("xdg-open", url).Start()
case "windows":
err = exec.Command("rundll32", "url.dll,FileProtocolHandler", url).Start()
case "darwin":
err = exec.Command("open", url).Start()
}
if err != nil {
fmt.Println(err)
}
}
func WithCharset(charset string) Option {
return func(o *options) {
o.Charset = charset
@ -540,14 +560,18 @@ func main() {
c.String(http.StatusOK, string(res))
})
// static 嵌入
r.GET("/", func(c *gin.Context) {
indexHTML, _ := dist.ReadFile("dist/index.html")
c.Writer.Write(indexHTML)
})
static, _ := fs.Sub(dist, "dist/static")
r.StaticFS("/static", http.FS(static))
r.Run(":8000")
if len(Open) == 0 {
OpenBrowser("http://localhost:8333")
}
r.Run(":8333")
}
func Cors() gin.HandlerFunc {

Loading…
Cancel
Save