149 lines
3.1 KiB
Go
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
|
|
}
|