Files
zerobundle/import/import.go
2020-08-21 17:12:18 -04:00

149 lines
3.1 KiB
Go

package zerobundle
/*
Released under the The MIT License (MIT)
see ./LICENSE
*/
import (
"io/ioutil"
"os"
"path/filepath"
"runtime"
"github.com/mholt/archiver/v3"
"github.com/eyedeekay/zerobundle/parts/aa"
"github.com/eyedeekay/zerobundle/parts/ab"
"github.com/eyedeekay/zerobundle/parts/ac"
"github.com/eyedeekay/zerobundle/parts/ad"
"github.com/eyedeekay/zerobundle/parts/ae"
"github.com/eyedeekay/zerobundle/parts/af"
"github.com/eyedeekay/zerobundle/parts/ag"
"github.com/eyedeekay/zerobundle/parts/ah"
"github.com/eyedeekay/zerobundle/parts/ai"
"github.com/eyedeekay/zerobundle/parts/aj"
"github.com/eyedeekay/zerobundle/parts/ak"
"github.com/eyedeekay/zerobundle/parts/al"
)
var ZERO_VERSION = "v1.17"
func TBZBytes() ([]byte, error) {
var bytes []byte
ba, err := izaa.WriteBrowser(izaa.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, ba...)
bb, err := izab.WriteBrowser(izab.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bb...)
bc, err := izac.WriteBrowser(izac.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bc...)
bd, err := izad.WriteBrowser(izad.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bd...)
be, err := izae.WriteBrowser(izae.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, be...)
bf, err := izaf.WriteBrowser(izaf.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bf...)
bg, err := izag.WriteBrowser(izag.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bg...)
bh, err := izah.WriteBrowser(izah.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bh...)
bi, err := izai.WriteBrowser(izai.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bi...)
bj, err := izaj.WriteBrowser(izaj.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bj...)
bk, err := izak.WriteBrowser(izak.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bk...)
bl, err := izal.WriteBrowser(izal.FS)
if err != nil {
return nil, err
}
bytes = append(bytes, bl...)
return bytes, nil
}
func Write() error {
var platform = "linux"
if runtime.GOOS == "windows" {
platform = "win"
}
if runtime.GOOS == "darwin" {
platform = "mac"
}
bytes, err := TBZBytes()
if err != nil {
return err
}
err = ioutil.WriteFile("i2p-zero-"+platform+".v1.17.zip", bytes, 0644)
if err != nil {
return err
}
return nil
}
func FileNotFound(p string) bool {
if _, err := os.Stat(p); os.IsNotExist(err) {
return true
}
return false
}
func Unpack(destinationDirectory string) error {
var platform = "linux"
var platform2 = "linux"
if runtime.GOOS == "windows" {
platform = "win-gui"
platform2 = "win"
}
if runtime.GOOS == "darwin" {
platform = "mac"
platform2 = "mac"
}
if destinationDirectory == "" {
destinationDirectory = "."
}
if FileNotFound(filepath.Join(destinationDirectory, "i2p-zero-"+platform+"."+ZERO_VERSION)) {
err := Write()
if err != nil {
return err
}
err = archiver.Unarchive("i2p-zero-"+platform2+"."+ZERO_VERSION+".zip", destinationDirectory)
if err != nil {
return err
}
}
return nil
}