mirror of
https://github.com/minio/minio.git
synced 2024-12-24 22:25:54 -05:00
ui-assets: Integrate UI assets.
This commit is contained in:
parent
53a983659e
commit
a066184bed
3
.gitignore
vendored
3
.gitignore
vendored
@ -9,4 +9,5 @@ site/
|
|||||||
/.idea/
|
/.idea/
|
||||||
/Minio.iml
|
/Minio.iml
|
||||||
**/access.log
|
**/access.log
|
||||||
assetfs.go
|
ui-assets.go
|
||||||
|
ui-assets.asc
|
||||||
|
10
Makefile
10
Makefile
@ -3,6 +3,8 @@ DOCKER_BIN := $(shell which docker)
|
|||||||
DOCKER_LDFLAGS := '$(LDFLAGS) -extldflags "-static"'
|
DOCKER_LDFLAGS := '$(LDFLAGS) -extldflags "-static"'
|
||||||
BUILD_LDFLAGS := '$(LDFLAGS)'
|
BUILD_LDFLAGS := '$(LDFLAGS)'
|
||||||
TAG := latest
|
TAG := latest
|
||||||
|
UI_ASSETS := ui-assets.go
|
||||||
|
UI_ASSETS_ARMOR := ui-assets.asc
|
||||||
|
|
||||||
all: install
|
all: install
|
||||||
|
|
||||||
@ -25,6 +27,12 @@ getdeps: checkdeps checkgopath
|
|||||||
@go get -u github.com/fzipp/gocyclo && echo "Installed gocyclo:"
|
@go get -u github.com/fzipp/gocyclo && echo "Installed gocyclo:"
|
||||||
@go get -u github.com/remyoudompheng/go-misc/deadcode && echo "Installed deadcode:"
|
@go get -u github.com/remyoudompheng/go-misc/deadcode && echo "Installed deadcode:"
|
||||||
|
|
||||||
|
$(UI_ASSETS):
|
||||||
|
@curl -s https://dl.minio.io/assets/server/$(UI_ASSETS_ARMOR) 2>&1 > $(UI_ASSETS_ARMOR) && echo "Downloading signature file $(UI_ASSETS_ARMOR) for verification:"
|
||||||
|
@gpg --batch --no-tty --yes --keyserver pgp.mit.edu --recv-keys F9AAC728 2>&1 > /dev/null && echo "Importing public key:"
|
||||||
|
@curl -s https://dl.minio.io/assets/server/$@ 2>&1 > $@ && echo "Downloading UI assets file $@:"
|
||||||
|
@gpg --batch --no-tty --verify $(UI_ASSETS_ARMOR) $@ 2>&1 > /dev/null && echo "Verifying signature of downloaded assets."
|
||||||
|
|
||||||
verifiers: getdeps vet fmt lint cyclo
|
verifiers: getdeps vet fmt lint cyclo
|
||||||
|
|
||||||
vet:
|
vet:
|
||||||
@ -49,7 +57,7 @@ cyclo:
|
|||||||
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/gocyclo -over 65 *.go
|
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/gocyclo -over 65 *.go
|
||||||
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/gocyclo -over 65 pkg
|
@GO15VENDOREXPERIMENT=1 ${GOPATH}/bin/gocyclo -over 65 pkg
|
||||||
|
|
||||||
build: getdeps verifiers
|
build: getdeps verifiers $(UI_ASSETS)
|
||||||
@echo "Installing minio:"
|
@echo "Installing minio:"
|
||||||
|
|
||||||
deadcode:
|
deadcode:
|
||||||
|
@ -10,6 +10,8 @@ clone_folder: c:\gopath\src\github.com\minio\minio
|
|||||||
environment:
|
environment:
|
||||||
GOPATH: c:\gopath
|
GOPATH: c:\gopath
|
||||||
GO15VENDOREXPERIMENT: 1
|
GO15VENDOREXPERIMENT: 1
|
||||||
|
UI_ASSETS: ui-assets.go
|
||||||
|
UI_ASSETS_ARMOR: ui-assets.asc
|
||||||
|
|
||||||
# scripts that run after cloning repository
|
# scripts that run after cloning repository
|
||||||
install:
|
install:
|
||||||
@ -19,6 +21,10 @@ install:
|
|||||||
|
|
||||||
# to run your custom scripts instead of automatic MSBuild
|
# to run your custom scripts instead of automatic MSBuild
|
||||||
build_script:
|
build_script:
|
||||||
|
- curl -o ui-assets.go -L https://dl.minio.io/assets/server/%UI_ASSETS%
|
||||||
|
- curl -o ui-assets.asc -L https://dl.minio.io/assets/server/%UI_ASSETS_ARMOR%
|
||||||
|
- gpg --batch --no-tty --yes --keyserver pgp.mit.edu --recv-keys F9AAC728
|
||||||
|
- gpg --batch --no-tty --verify %UI_ASSETS_ARMOR% %UI_ASSETS%
|
||||||
- go test .
|
- go test .
|
||||||
- go test -race .
|
- go test -race .
|
||||||
- go test github.com/minio/minio/pkg...
|
- go test github.com/minio/minio/pkg...
|
||||||
|
@ -75,8 +75,8 @@ func getWebAPIHandler(web *WebAPI) http.Handler {
|
|||||||
root.Handle("/rpc", s)
|
root.Handle("/rpc", s)
|
||||||
|
|
||||||
// Enable this when we add assets.
|
// Enable this when we add assets.
|
||||||
// root.PathPrefix("/login").Handler(http.StripPrefix("/login", http.FileServer(assetFS())))
|
root.PathPrefix("/login").Handler(http.StripPrefix("/login", http.FileServer(assetFS())))
|
||||||
// root.Handle("/{file:.*}", http.FileServer(assetFS()))
|
root.Handle("/{file:.*}", http.FileServer(assetFS()))
|
||||||
return registerHandlers(mux, handlerFns...)
|
return registerHandlers(mux, handlerFns...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
2
vendor/github.com/elazarl/go-bindata-assetfs/README.md
generated
vendored
2
vendor/github.com/elazarl/go-bindata-assetfs/README.md
generated
vendored
@ -41,6 +41,6 @@ use
|
|||||||
...
|
...
|
||||||
http.Handle("/",
|
http.Handle("/",
|
||||||
http.FileServer(
|
http.FileServer(
|
||||||
&assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, Prefix: "data"}))
|
&assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, AssetInfo: AssetInfo, Prefix: "data"}))
|
||||||
|
|
||||||
to serve files embedded from the `data` directory.
|
to serve files embedded from the `data` directory.
|
||||||
|
25
vendor/github.com/elazarl/go-bindata-assetfs/assetfs.go
generated
vendored
25
vendor/github.com/elazarl/go-bindata-assetfs/assetfs.go
generated
vendored
@ -13,7 +13,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
fileTimestamp = time.Now()
|
defaultFileTimestamp = time.Now()
|
||||||
)
|
)
|
||||||
|
|
||||||
// FakeFile implements os.FileInfo interface for a given path and size
|
// FakeFile implements os.FileInfo interface for a given path and size
|
||||||
@ -24,6 +24,8 @@ type FakeFile struct {
|
|||||||
Dir bool
|
Dir bool
|
||||||
// Len is the length of the fake file, zero if it is a directory
|
// Len is the length of the fake file, zero if it is a directory
|
||||||
Len int64
|
Len int64
|
||||||
|
// Timestamp is the ModTime of this file
|
||||||
|
Timestamp time.Time
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FakeFile) Name() string {
|
func (f *FakeFile) Name() string {
|
||||||
@ -40,7 +42,7 @@ func (f *FakeFile) Mode() os.FileMode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (f *FakeFile) ModTime() time.Time {
|
func (f *FakeFile) ModTime() time.Time {
|
||||||
return fileTimestamp
|
return f.Timestamp
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *FakeFile) Size() int64 {
|
func (f *FakeFile) Size() int64 {
|
||||||
@ -62,11 +64,14 @@ type AssetFile struct {
|
|||||||
FakeFile
|
FakeFile
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAssetFile(name string, content []byte) *AssetFile {
|
func NewAssetFile(name string, content []byte, timestamp time.Time) *AssetFile {
|
||||||
|
if timestamp.IsZero() {
|
||||||
|
timestamp = defaultFileTimestamp
|
||||||
|
}
|
||||||
return &AssetFile{
|
return &AssetFile{
|
||||||
bytes.NewReader(content),
|
bytes.NewReader(content),
|
||||||
ioutil.NopCloser(nil),
|
ioutil.NopCloser(nil),
|
||||||
FakeFile{name, false, int64(len(content))}}
|
FakeFile{name, false, int64(len(content)), timestamp}}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *AssetFile) Readdir(count int) ([]os.FileInfo, error) {
|
func (f *AssetFile) Readdir(count int) ([]os.FileInfo, error) {
|
||||||
@ -92,13 +97,13 @@ func NewAssetDirectory(name string, children []string, fs *AssetFS) *AssetDirect
|
|||||||
fileinfos := make([]os.FileInfo, 0, len(children))
|
fileinfos := make([]os.FileInfo, 0, len(children))
|
||||||
for _, child := range children {
|
for _, child := range children {
|
||||||
_, err := fs.AssetDir(filepath.Join(name, child))
|
_, err := fs.AssetDir(filepath.Join(name, child))
|
||||||
fileinfos = append(fileinfos, &FakeFile{child, err == nil, 0})
|
fileinfos = append(fileinfos, &FakeFile{child, err == nil, 0, time.Time{}})
|
||||||
}
|
}
|
||||||
return &AssetDirectory{
|
return &AssetDirectory{
|
||||||
AssetFile{
|
AssetFile{
|
||||||
bytes.NewReader(nil),
|
bytes.NewReader(nil),
|
||||||
ioutil.NopCloser(nil),
|
ioutil.NopCloser(nil),
|
||||||
FakeFile{name, true, 0},
|
FakeFile{name, true, 0, time.Time{}},
|
||||||
},
|
},
|
||||||
0,
|
0,
|
||||||
fileinfos}
|
fileinfos}
|
||||||
@ -127,6 +132,8 @@ type AssetFS struct {
|
|||||||
Asset func(path string) ([]byte, error)
|
Asset func(path string) ([]byte, error)
|
||||||
// AssetDir should return list of files in the path
|
// AssetDir should return list of files in the path
|
||||||
AssetDir func(path string) ([]string, error)
|
AssetDir func(path string) ([]string, error)
|
||||||
|
// AssetInfo should return the info of file in path if exists
|
||||||
|
AssetInfo func(path string) (os.FileInfo, error)
|
||||||
// Prefix would be prepended to http requests
|
// Prefix would be prepended to http requests
|
||||||
Prefix string
|
Prefix string
|
||||||
}
|
}
|
||||||
@ -137,7 +144,11 @@ func (fs *AssetFS) Open(name string) (http.File, error) {
|
|||||||
name = name[1:]
|
name = name[1:]
|
||||||
}
|
}
|
||||||
if b, err := fs.Asset(name); err == nil {
|
if b, err := fs.Asset(name); err == nil {
|
||||||
return NewAssetFile(name, b), nil
|
timestamp := defaultFileTimestamp
|
||||||
|
if info, err := fs.AssetInfo(name); err == nil {
|
||||||
|
timestamp = info.ModTime()
|
||||||
|
}
|
||||||
|
return NewAssetFile(name, b, timestamp), nil
|
||||||
}
|
}
|
||||||
if children, err := fs.AssetDir(name); err == nil {
|
if children, err := fs.AssetDir(name); err == nil {
|
||||||
return NewAssetDirectory(name, children, fs), nil
|
return NewAssetDirectory(name, children, fs), nil
|
||||||
|
4
vendor/vendor.json
vendored
4
vendor/vendor.json
vendored
@ -19,8 +19,8 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "github.com/elazarl/go-bindata-assetfs",
|
"path": "github.com/elazarl/go-bindata-assetfs",
|
||||||
"revision": "d5cac425555ca5cf00694df246e04f05e6a55150",
|
"revision": "57eb5e1fc594ad4b0b1dbea7b286d299e0cb43c2",
|
||||||
"revisionTime": "2015-08-13T07:46:22+03:00"
|
"revisionTime": "2015-12-24T06:54:52+02:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "github.com/fatih/color",
|
"path": "github.com/fatih/color",
|
||||||
|
Loading…
Reference in New Issue
Block a user