Skip to content

Commit 7c40b47

Browse files
committed
Add --livefs flag
1 parent babb0ae commit 7c40b47

File tree

2 files changed

+66
-35
lines changed

2 files changed

+66
-35
lines changed

Makefile

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ ifeq ($(summary),)
1212
summary := "true"
1313
endif
1414

15+
ifeq ($(livefs),)
16+
livefs := "true"
17+
endif
18+
1519
generate:
1620
go generate
1721
install: generate
1822
go build -o $$GOPATH/bin/codemill
1923
run-linux: generate
20-
GOPACKAGESDEBUG=true GO111MODULE=on GOOS=linux GOARCH=amd64 go run main.go --spec=$(spec) --dir=$(dir) --http=$(http) --gen=$(gen) --summary=$(summary)
24+
GOPACKAGESDEBUG=true GO111MODULE=on GOOS=linux GOARCH=amd64 go run main.go --spec=$(spec) --dir=$(dir) --http=$(http) --gen=$(gen) --summary=$(summary) --livefs=$(livefs)

main.go

Lines changed: 61 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"errors"
66
"flag"
77
"fmt"
8+
"io"
89
"io/ioutil"
910
"mime"
1011
"net/http"
@@ -59,14 +60,51 @@ func main() {
5960
Fataln(err)
6061
}
6162

63+
var specFilepath string
64+
var outDir string
65+
var runServer bool
66+
var doGen bool
67+
var doSummary bool
68+
var liveFs bool
69+
flag.StringVar(&specFilepath, "spec", "", "Path to spec file; file will be created if not already existing.")
70+
flag.StringVar(&outDir, "dir", "", "Path to dir where to save generated files.")
71+
flag.BoolVar(&runServer, "http", true, "Run http server.")
72+
flag.BoolVar(&doGen, "gen", true, "Generate code.")
73+
flag.BoolVar(&doSummary, "summary", true, "Output a summary.")
74+
flag.BoolVar(&liveFs, "livefs", false, "Use static assets directly from live FS.")
75+
flag.Parse()
76+
77+
if specFilepath == "" {
78+
// specFilepath is ALWAYS necessary,
79+
// either for knowing from where to load a spec,
80+
// or where to save a new created one.
81+
panic("--spec flag not provided")
82+
}
83+
84+
if outDir == "" {
85+
panic("--dir flag not provided")
86+
}
87+
6288
{ // Add http handlers for static files:
6389
r.GET("/", func(c *gin.Context) {
64-
reader, err := statikFS.Open("/index.html")
65-
if err != nil {
66-
Q(err)
67-
Abort404(c, err.Error())
68-
return
90+
var reader io.ReadCloser
91+
var err error
92+
if liveFs {
93+
reader, err = os.Open("./public/index.html")
94+
if err != nil {
95+
Q(err)
96+
Abort404(c, err.Error())
97+
return
98+
}
99+
} else {
100+
reader, err = statikFS.Open("/index.html")
101+
if err != nil {
102+
Q(err)
103+
Abort404(c, err.Error())
104+
return
105+
}
69106
}
107+
70108
defer reader.Close()
71109
contents, err := ioutil.ReadAll(reader)
72110
if err != nil {
@@ -82,12 +120,25 @@ func main() {
82120
c.AbortWithStatus(400)
83121
return
84122
}
85-
reader, err := statikFS.Open("/static/" + name)
86-
if err != nil {
87-
c.AbortWithError(400, err)
88-
Q(err)
89-
return
123+
124+
var reader io.ReadCloser
125+
var err error
126+
if liveFs {
127+
reader, err = os.Open(filepath.Join("public", "static", name))
128+
if err != nil {
129+
Q(err)
130+
Abort404(c, err.Error())
131+
return
132+
}
133+
} else {
134+
reader, err = statikFS.Open("/static/" + name)
135+
if err != nil {
136+
c.AbortWithError(400, err)
137+
Q(err)
138+
return
139+
}
90140
}
141+
91142
defer reader.Close()
92143
contents, err := ioutil.ReadAll(reader)
93144
if err != nil {
@@ -100,30 +151,6 @@ func main() {
100151
})
101152
}
102153
httpClient := new(http.Client)
103-
104-
var specFilepath string
105-
var outDir string
106-
var runServer bool
107-
var doGen bool
108-
var doSummary bool
109-
flag.StringVar(&specFilepath, "spec", "", "Path to spec file; file will be created if not already existing.")
110-
flag.StringVar(&outDir, "dir", "", "Path to dir where to save generated files.")
111-
flag.BoolVar(&runServer, "http", true, "Run http server.")
112-
flag.BoolVar(&doGen, "gen", true, "Generate code.")
113-
flag.BoolVar(&doSummary, "summary", true, "Output a summary.")
114-
flag.Parse()
115-
116-
if specFilepath == "" {
117-
// specFilepath is ALWAYS necessary,
118-
// either for knowing from where to load a spec,
119-
// or where to save a new created one.
120-
panic("--spec flag not provided")
121-
}
122-
123-
if outDir == "" {
124-
panic("--dir flag not provided")
125-
}
126-
127154
{
128155
rt := x.Router()
129156
// Register ModelKind handlers in the router:

0 commit comments

Comments
 (0)