[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 (
|
||||
"bytes"
|
||||
"compress/gzip"
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
|
|
@ -65,6 +66,21 @@ func Read(name string) ([]byte, error) {
|
|||
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
|
||||
func replaceXGenIndex(search, replace string) error {
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import (
|
|||
"github.com/yaoapp/yao/cert"
|
||||
"github.com/yaoapp/yao/config"
|
||||
"github.com/yaoapp/yao/connector"
|
||||
"github.com/yaoapp/yao/data"
|
||||
"github.com/yaoapp/yao/flow"
|
||||
"github.com/yaoapp/yao/fs"
|
||||
"github.com/yaoapp/yao/i18n"
|
||||
|
|
@ -226,15 +227,35 @@ func loadApp(root string) error {
|
|||
var err error
|
||||
var app application.Application
|
||||
|
||||
if root == "bin:application.yaz" {
|
||||
app, err = application.OpenFromYaz(root, pack.Cipher) // Load app from Bin
|
||||
if share.BUILDIN {
|
||||
|
||||
file, err := os.Executable()
|
||||
if err != nil {
|
||||
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)
|
||||
data.RemoveApp()
|
||||
|
||||
} 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 {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import (
|
|||
"github.com/yaoapp/yao/config"
|
||||
"github.com/yaoapp/yao/fs"
|
||||
"github.com/yaoapp/yao/helper"
|
||||
"github.com/yaoapp/yao/pack"
|
||||
"github.com/yaoapp/yao/runtime"
|
||||
"github.com/yaoapp/yao/share"
|
||||
)
|
||||
|
|
@ -34,14 +33,34 @@ func Prepare(t *testing.T, cfg config.Config) {
|
|||
var app application.Application
|
||||
var err error
|
||||
|
||||
if root == "bin:application.pkg" {
|
||||
app, err = application.OpenFromBin(root, pack.Cipher) // Load app from Bin
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
application.Load(app)
|
||||
return
|
||||
}
|
||||
// if share.BUILDIN {
|
||||
|
||||
// file, err := os.Executable()
|
||||
// if err != nil {
|
||||
// t.Fatal(err)
|
||||
// }
|
||||
|
||||
// // 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
|
||||
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