-
Notifications
You must be signed in to change notification settings - Fork 451
/
assets.go
289 lines (254 loc) · 8.84 KB
/
assets.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
// Code generated by "esc -modtime 12345 -prefix openapi/ -pkg openapi -ignore .go -o openapi/assets.go ."; DO NOT EDIT.
// Copyright (c) 2020 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
package openapi
import (
"bytes"
"compress/gzip"
"encoding/base64"
"io/ioutil"
"net/http"
"os"
"path"
"sync"
"time"
)
type _escLocalFS struct{}
var _escLocal _escLocalFS
type _escStaticFS struct{}
var _escStatic _escStaticFS
type _escDirectory struct {
fs http.FileSystem
name string
}
type _escFile struct {
compressed string
size int64
modtime int64
local string
isDir bool
once sync.Once
data []byte
name string
}
func (_escLocalFS) Open(name string) (http.File, error) {
f, present := _escData[path.Clean(name)]
if !present {
return nil, os.ErrNotExist
}
return os.Open(f.local)
}
func (_escStaticFS) prepare(name string) (*_escFile, error) {
f, present := _escData[path.Clean(name)]
if !present {
return nil, os.ErrNotExist
}
var err error
f.once.Do(func() {
f.name = path.Base(name)
if f.size == 0 {
return
}
var gr *gzip.Reader
b64 := base64.NewDecoder(base64.StdEncoding, bytes.NewBufferString(f.compressed))
gr, err = gzip.NewReader(b64)
if err != nil {
return
}
f.data, err = ioutil.ReadAll(gr)
})
if err != nil {
return nil, err
}
return f, nil
}
func (fs _escStaticFS) Open(name string) (http.File, error) {
f, err := fs.prepare(name)
if err != nil {
return nil, err
}
return f.File()
}
func (dir _escDirectory) Open(name string) (http.File, error) {
return dir.fs.Open(dir.name + name)
}
func (f *_escFile) File() (http.File, error) {
type httpFile struct {
*bytes.Reader
*_escFile
}
return &httpFile{
Reader: bytes.NewReader(f.data),
_escFile: f,
}, nil
}
func (f *_escFile) Close() error {
return nil
}
func (f *_escFile) Readdir(count int) ([]os.FileInfo, error) {
return nil, nil
}
func (f *_escFile) Stat() (os.FileInfo, error) {
return f, nil
}
func (f *_escFile) Name() string {
return f.name
}
func (f *_escFile) Size() int64 {
return f.size
}
func (f *_escFile) Mode() os.FileMode {
return 0
}
func (f *_escFile) ModTime() time.Time {
return time.Unix(f.modtime, 0)
}
func (f *_escFile) IsDir() bool {
return f.isDir
}
func (f *_escFile) Sys() interface{} {
return f
}
// FS returns a http.Filesystem for the embedded assets. If useLocal is true,
// the filesystem's contents are instead used.
func FS(useLocal bool) http.FileSystem {
if useLocal {
return _escLocal
}
return _escStatic
}
// Dir returns a http.Filesystem for the embedded assets on a given prefix dir.
// If useLocal is true, the filesystem's contents are instead used.
func Dir(useLocal bool, name string) http.FileSystem {
if useLocal {
return _escDirectory{fs: _escLocal, name: name}
}
return _escDirectory{fs: _escStatic, name: name}
}
// FSByte returns the named file from the embedded assets. If useLocal is
// true, the filesystem's contents are instead used.
func FSByte(useLocal bool, name string) ([]byte, error) {
if useLocal {
f, err := _escLocal.Open(name)
if err != nil {
return nil, err
}
b, err := ioutil.ReadAll(f)
_ = f.Close()
return b, err
}
f, err := _escStatic.prepare(name)
if err != nil {
return nil, err
}
return f.data, nil
}
// FSMustByte is the same as FSByte, but panics if name is not present.
func FSMustByte(useLocal bool, name string) []byte {
b, err := FSByte(useLocal, name)
if err != nil {
panic(err)
}
return b
}
// FSString is the string version of FSByte.
func FSString(useLocal bool, name string) (string, error) {
b, err := FSByte(useLocal, name)
return string(b), err
}
// FSMustString is the string version of FSMustByte.
func FSMustString(useLocal bool, name string) string {
return string(FSMustByte(useLocal, name))
}
var _escData = map[string]*_escFile{
"/asset-gen.sh": {
local: "asset-gen.sh",
size: 238,
modtime: 12345,
compressed: `
H4sIAAAAAAAC/0zKz0rEMBDH8Xue4rfTnBbSsP45LR5EfAHrTUTWdpIO0hlJIgjiu0sr6M5l4PP9dbv4
Khrr7NztMNw/vgwPdzf+4JIVCERB/s8p7o+YzAGAJOzwhDDBC56PaDPrFtYbTZvoB2+QxG2fx9lAmZXL
qYlmpGILvNBvrSPCYlOThUGHi8ura0J4L5zkE+S/pOv28Tuu9pb/gRAkqxVGnw3BzqanWrnVPhuBenKT
KbufAAAA//9BiTev7gAAAA==
`,
},
"/index.html": {
local: "openapi/index.html",
size: 636,
modtime: 12345,
compressed: `
H4sIAAAAAAAC/0ySQW/bMAyF7/kVjC+9RJaHDtiQyd6wpceuQ9DLblUk2lYrS55IpzC2/ffBUdLlRr4n
fXwgqNa7h2+PP3/cQc+Db1ZqLcTq+8Pj3Rb2U4CnQb8gaCJk0WEQvyZM8xO4FuY4QTbDDKbXoUMCjsC9
I2idx/VKiGalMhZA9ajtUgAoduyxub/dfYU97qJRMivZHZD1QkyEXBcTt+JjIa+9oAesi6PD1zEmLsDE
wBi4Ll6d5b62eHQGxanZgAuOnfaCjPZYvyvOIO/CC/QJ27romUfaStnGwFR2MXYe9eioNHGQhuhzqwfn
5/p+8TElzdvbqtq8r6rNh6r6s4+HyPFaKiChrwvi2SP1iHwZelJyDXCIdobf5wZg0KlzYQvVpzdp1Na6
0F1pfzNHvoGUvKxVLbzznIQ2GqARjZiSr2/iiEGPThJrdkYuRjkP/qZR8vT0Es8kNzJQMv+XYmwon8mi
d8dUBmQZxiF/+uI1I7E8TMF6pCyWxDpY7WPA8pmKZsl6ouawOaOS+Sj+BQAA//8by2IcfAIAAA==
`,
},
"/spec.yml": {
local: "openapi/spec.yml",
size: 23026,
modtime: 12345,
compressed: `
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
GyXHNPJZAAA=
`,
},
"/": {
isDir: true,
local: "openapi",
},
}