[add] load application from bin data
This commit is contained in:
parent
afa55d98cd
commit
0c438d088a
5 changed files with 288 additions and 111 deletions
319
data/bindata.go
319
data/bindata.go
File diff suppressed because one or more lines are too long
16
data/data.go
16
data/data.go
|
|
@ -3,6 +3,7 @@ package data
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"compress/gzip"
|
"compress/gzip"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
|
@ -65,6 +66,21 @@ func Read(name string) ([]byte, error) {
|
||||||
return Asset(name)
|
return Asset(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReadApp read app from bin
|
||||||
|
func ReadApp() (io.Reader, error) {
|
||||||
|
asset, err := yaoReleaseAppYazBytes()
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return bytes.NewBuffer(asset), nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveApp remove app from bin
|
||||||
|
func RemoveApp() {
|
||||||
|
_yaoReleaseAppYaz = []byte{}
|
||||||
|
delete(_bindata, "yao/release/app.yaz")
|
||||||
|
}
|
||||||
|
|
||||||
// ReplaceXGenIndex bindata file
|
// ReplaceXGenIndex bindata file
|
||||||
func replaceXGenIndex(search, replace string) error {
|
func replaceXGenIndex(search, replace string) error {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import (
|
||||||
"github.com/yaoapp/yao/cert"
|
"github.com/yaoapp/yao/cert"
|
||||||
"github.com/yaoapp/yao/config"
|
"github.com/yaoapp/yao/config"
|
||||||
"github.com/yaoapp/yao/connector"
|
"github.com/yaoapp/yao/connector"
|
||||||
|
"github.com/yaoapp/yao/data"
|
||||||
"github.com/yaoapp/yao/flow"
|
"github.com/yaoapp/yao/flow"
|
||||||
"github.com/yaoapp/yao/fs"
|
"github.com/yaoapp/yao/fs"
|
||||||
"github.com/yaoapp/yao/i18n"
|
"github.com/yaoapp/yao/i18n"
|
||||||
|
|
@ -226,15 +227,35 @@ func loadApp(root string) error {
|
||||||
var err error
|
var err error
|
||||||
var app application.Application
|
var app application.Application
|
||||||
|
|
||||||
if root == "bin:application.yaz" {
|
if share.BUILDIN {
|
||||||
app, err = application.OpenFromYaz(root, pack.Cipher) // Load app from Bin
|
|
||||||
|
file, err := os.Executable()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Load from cache
|
||||||
|
app, err := application.OpenFromYazCache(file, pack.Cipher)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
|
||||||
|
// load from bin
|
||||||
|
reader, err := data.ReadApp()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
app, err = application.OpenFromYaz(reader, file, pack.Cipher) // Load app from Bin
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
application.Load(app)
|
application.Load(app)
|
||||||
|
data.RemoveApp()
|
||||||
|
|
||||||
} else if strings.HasSuffix(root, ".yaz") {
|
} else if strings.HasSuffix(root, ".yaz") {
|
||||||
app, err = application.OpenFromYaz(root, pack.Cipher) // Load app from .yaz file
|
app, err = application.OpenFromYazFile(root, pack.Cipher) // Load app from .yaz file
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@ import (
|
||||||
"github.com/yaoapp/yao/config"
|
"github.com/yaoapp/yao/config"
|
||||||
"github.com/yaoapp/yao/fs"
|
"github.com/yaoapp/yao/fs"
|
||||||
"github.com/yaoapp/yao/helper"
|
"github.com/yaoapp/yao/helper"
|
||||||
"github.com/yaoapp/yao/pack"
|
|
||||||
"github.com/yaoapp/yao/runtime"
|
"github.com/yaoapp/yao/runtime"
|
||||||
"github.com/yaoapp/yao/share"
|
"github.com/yaoapp/yao/share"
|
||||||
)
|
)
|
||||||
|
|
@ -34,14 +33,34 @@ func Prepare(t *testing.T, cfg config.Config) {
|
||||||
var app application.Application
|
var app application.Application
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if root == "bin:application.pkg" {
|
// if share.BUILDIN {
|
||||||
app, err = application.OpenFromBin(root, pack.Cipher) // Load app from Bin
|
|
||||||
if err != nil {
|
// file, err := os.Executable()
|
||||||
t.Fatal(err)
|
// if err != nil {
|
||||||
}
|
// t.Fatal(err)
|
||||||
application.Load(app)
|
// }
|
||||||
return
|
|
||||||
}
|
// // Load from cache
|
||||||
|
// app, err := application.OpenFromYazCache(file, pack.Cipher)
|
||||||
|
|
||||||
|
// if err != nil {
|
||||||
|
|
||||||
|
// // load from bin
|
||||||
|
// reader, err := data.ReadApp()
|
||||||
|
// if err != nil {
|
||||||
|
// t.Fatal(err)
|
||||||
|
// }
|
||||||
|
|
||||||
|
// app, err = application.OpenFromYaz(reader, file, pack.Cipher) // Load app from Bin
|
||||||
|
// if err != nil {
|
||||||
|
// t.Fatal(err)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// application.Load(app)
|
||||||
|
// data.RemoveApp()
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
|
||||||
app, err = application.OpenFromDisk(root) // Load app from Disk
|
app, err = application.OpenFromDisk(root) // Load app from Disk
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
BIN
yao/release/app.yaz
Normal file
BIN
yao/release/app.yaz
Normal file
Binary file not shown.
Loading…
Add table
Reference in a new issue