imports and stuff
This commit is contained in:
50
Makefile
50
Makefile
@ -9,8 +9,7 @@ GINGERSHREW_REVISION=9
|
||||
|
||||
GO_COMPILER_OPTS = -a -tags netgo -ldflags '-w -extldflags "-static"'
|
||||
|
||||
build: setup assets.go
|
||||
go build $(GO_COMPILER_OPTS)
|
||||
build: gingershrew gen
|
||||
|
||||
gnuzilla:
|
||||
git clone --depth=1 "https://git.savannah.gnu.org/git/gnuzilla.git" -b $(GINGERSHREW_VERSION); true
|
||||
@ -28,12 +27,7 @@ gingershrew: gnuzilla gnuzilla-version rhz gnuzilla/output rhz gingershrew-linux
|
||||
copy-linux:
|
||||
rm -rf gingershrew
|
||||
find gnuzilla -name gingershrew-$(GINGERSHREW_VERSION).$(GINGERSHREW_REVISION).0.en-US.linux-x86_64.tar.bz2 -exec cp {} ./ \;
|
||||
find . -name gingershrew-$(GINGERSHREW_VERSION).$(GINGERSHREW_REVISION).0.en-US.linux-x86_64.tar.bz2 -exec tar xjf {} \;
|
||||
rm -rf gingershrew/libs && mkdir -p gingershrew/libs
|
||||
cp -v gingershrew/*.so gingershrew/libs
|
||||
rm -v gingershrew/*.so
|
||||
rm -rf gingershrew/root && mkdir -p gingershrew/root
|
||||
-cp -v gingershrew/* gingershrew/root
|
||||
#find . -name gingershrew-$(GINGERSHREW_VERSION).$(GINGERSHREW_REVISION).0.en-US.linux-x86_64.tar.bz2 -exec tar xjf {} \;
|
||||
#find . -name gingershrew-$(GINGERSHREW_VERSION).$(GINGERSHREW_REVISION).0.en-US.linux-x86_64.tar.bz2 -exec cp {} ./gingershrew/ \;
|
||||
|
||||
gingershrew-linux-workdir:
|
||||
@ -80,43 +74,13 @@ rhz:
|
||||
sed -i 's|\\>GNU\\|\\>No\\|g' gnuzilla/makeicecat
|
||||
|
||||
clean:
|
||||
rm -rf chrome extensions features browser defaults fonts gmp-clearkey gtk2 icons libs libs/a libs/b libs/c libs/d libs/e
|
||||
rm -rfv gnuzilla \
|
||||
gingershrew*.tar.bz2*
|
||||
|
||||
tar:
|
||||
mkdir -p parts/aa parts/ab parts/ac parts/ad parts/ae parts/af
|
||||
mkdir -p parts/ag parts/ah parts/ai parts/aj parts/ak parts/al
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsaa|g' | tee parts/aa/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsab|g' | tee parts/ab/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsac|g' | tee parts/ac/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsad|g' | tee parts/ad/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsae|g' | tee parts/ae/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsaf|g' | tee parts/af/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsag|g' | tee parts/ag/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsah|g' | tee parts/ah/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsai|g' | tee parts/ai/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsaj|g' | tee parts/aj/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsak|g' | tee parts/ak/unpacker.go
|
||||
cat unpacker.go.pre | sed 's|REPLACEME|gsal|g' | tee parts/al/unpacker.go
|
||||
split -n 12 gingershrew-$(GINGERSHREW_VERSION).$(GINGERSHREW_REVISION).0.en-US.linux-x86_64.tar.bz2 split-gingershrew-$(GINGERSHREW_VERSION).$(GINGERSHREW_REVISION).0.en-US.linux-x86_64.tar.bz2.
|
||||
gen:
|
||||
go run --tags generate gen.go
|
||||
|
||||
|
||||
|
||||
#tar: copy-linux
|
||||
# mkdir -p chrome extensions features browser defaults fonts gmp-clearkey gtk2 icons libs libs/a libs/b libs/c libs/d libs/e
|
||||
# tar cvzf chrome.tar.gz gingershrew/browser/chrome
|
||||
# tar cvzf extensions.tar.gz gingershrew/browser/extensions
|
||||
# tar cvzf features.tar.gz gingershrew/browser/features
|
||||
# tar cvzf browser.tar.gz gingershrew/browser/*.*
|
||||
# tar cvzf defaults.tar.gz gingershrew/defaults
|
||||
# tar cvzf fonts.tar.gz gingershrew/fonts
|
||||
# tar cvzf gmp-clearkey.tar.gz gingershrew/gmp-clearkey
|
||||
# tar cvzf gtk2.tar.gz gingershrew/gtk2
|
||||
# tar cvzf icons.tar.gz gingershrew/icons
|
||||
# tar cvzf libs.tar.gz gingershrew/libs
|
||||
# split -n 5 libs.tar.gz libs.tar.gz.
|
||||
# tar cvzf base.tar.gz gingershrew/root
|
||||
# ls -lah *.tar.gz
|
||||
# go run --tags generate gen.go
|
||||
test:
|
||||
cd import && GO111MODULE=off go test
|
||||
|
||||
|
||||
|
209
gen.go
209
gen.go
@ -2,21 +2,204 @@
|
||||
|
||||
package main
|
||||
|
||||
import "github.com/zserge/lorca"
|
||||
import (
|
||||
"github.com/zserge/lorca"
|
||||
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var icecatdir = "gnuzilla"
|
||||
|
||||
var lowercase = "gingershrew"
|
||||
var CamelCase = "GingerShrew"
|
||||
var UPPERCASE = "GINGERSHREW"
|
||||
|
||||
var Full_Name = "Free GingerShrew"
|
||||
var Developer = "From A Tiny Rodent"
|
||||
var Foundation = "No Foundation"
|
||||
var Corporation ="No Corporation"
|
||||
|
||||
|
||||
var unpacker = `package REPLACEME
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
if os.Geteuid() == 0 {
|
||||
log.Fatal("Do not run this application as root!")
|
||||
}
|
||||
if un, err := os.UserHomeDir(); err == nil {
|
||||
os.MkdirAll(filepath.Join(un, "i2p"), 0755)
|
||||
return un
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
`
|
||||
|
||||
func main() {
|
||||
// You can also run "npm build" or webpack here, or compress assets, or
|
||||
// generate manifests, or do other preparations for your assets.
|
||||
lorca.Embed("gsaa", "parts/aa/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.aa")
|
||||
lorca.Embed("gsab", "parts/ab/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ab")
|
||||
lorca.Embed("gsac", "parts/ac/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ac")
|
||||
lorca.Embed("gsad", "parts/ad/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ad")
|
||||
lorca.Embed("gsae", "parts/ae/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ae")
|
||||
lorca.Embed("gsaf", "parts/af/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.af")
|
||||
lorca.Embed("gsag", "parts/ag/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ag")
|
||||
lorca.Embed("gsah", "parts/ah/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ah")
|
||||
lorca.Embed("gsai", "parts/ai/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ai")
|
||||
lorca.Embed("gsaj", "parts/aj/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.aj")
|
||||
lorca.Embed("gsak", "parts/ak/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ak")
|
||||
lorca.Embed("gsal", "parts/al/chunk.go", "split-gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.al")
|
||||
|
||||
if err := deleteDirectories(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := createDirectories(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := generateGoUnpacker(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
if err := splitBinaries(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
lorca.Embed("gsaa", "parts/aa/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.aa")
|
||||
log.Println("embedded gsaa")
|
||||
lorca.Embed("gsab", "parts/ab/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ab")
|
||||
log.Println("embedded gsab")
|
||||
lorca.Embed("gsac", "parts/ac/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ac")
|
||||
log.Println("embedded gsac")
|
||||
lorca.Embed("gsad", "parts/ad/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ad")
|
||||
log.Println("embedded gsad")
|
||||
lorca.Embed("gsae", "parts/ae/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ae")
|
||||
log.Println("embedded gsae")
|
||||
lorca.Embed("gsaf", "parts/af/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.af")
|
||||
log.Println("embedded gsaf")
|
||||
lorca.Embed("gsag", "parts/ag/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ag")
|
||||
log.Println("embedded gsag")
|
||||
lorca.Embed("gsah", "parts/ah/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ah")
|
||||
log.Println("embedded gsah")
|
||||
lorca.Embed("gsai", "parts/ai/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ai")
|
||||
log.Println("embedded gsai")
|
||||
lorca.Embed("gsaj", "parts/aj/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.aj")
|
||||
log.Println("embedded gsaj")
|
||||
lorca.Embed("gsak", "parts/ak/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.ak")
|
||||
log.Println("embedded gsak")
|
||||
lorca.Embed("gsal", "parts/al/chunk.go", "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2.al")
|
||||
log.Println("embedded gsal")
|
||||
}
|
||||
|
||||
var dirs = []string{
|
||||
"parts/aa",
|
||||
"parts/ab",
|
||||
"parts/ac",
|
||||
"parts/ad",
|
||||
"parts/ae",
|
||||
"parts/af",
|
||||
"parts/ag",
|
||||
"parts/ah",
|
||||
"parts/ai",
|
||||
"parts/aj",
|
||||
"parts/ak",
|
||||
"parts/al",
|
||||
}
|
||||
|
||||
var libs = []string{
|
||||
"aa",
|
||||
"ab",
|
||||
"ac",
|
||||
"ad",
|
||||
"ae",
|
||||
"af",
|
||||
"ag",
|
||||
"ah",
|
||||
"ai",
|
||||
"aj",
|
||||
"ak",
|
||||
"al",
|
||||
}
|
||||
|
||||
func splitBinaries() error {
|
||||
fileToBeChunked := "gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2"
|
||||
bytes, err := ioutil.ReadFile(fileToBeChunked)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
chunkSize := len(bytes) / 12
|
||||
for index, lib := range libs {
|
||||
start := index * chunkSize
|
||||
finish := (index+1) * chunkSize
|
||||
outBytes := bytes[start:finish]
|
||||
err := ioutil.WriteFile(fileToBeChunked+"."+lib, outBytes, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func deleteDirectories() error {
|
||||
for _, dir := range libs {
|
||||
err := os.RemoveAll(filepath.Join("parts", dir))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func createDirectories() error {
|
||||
for _, dir := range libs {
|
||||
err := os.MkdirAll(filepath.Join("parts", dir), 0755)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func generateGoUnpacker() error {
|
||||
for index, dir := range libs {
|
||||
contents := strings.Replace(unpacker, "REPLACEME", "gs"+libs[index], -1)
|
||||
if err := ioutil.WriteFile(filepath.Join("parts", dir, "unpacker.go"), []byte(contents), 0644); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package gingershrew
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
|
||||
"github.com/eyedeekay/gingershrew/parts/aa"
|
||||
"github.com/eyedeekay/gingershrew/parts/ab"
|
||||
"github.com/eyedeekay/gingershrew/parts/ac"
|
||||
@ -14,3 +16,80 @@ import (
|
||||
"github.com/eyedeekay/gingershrew/parts/ak"
|
||||
"github.com/eyedeekay/gingershrew/parts/al"
|
||||
)
|
||||
|
||||
func TBZBytes() ([]byte, error) {
|
||||
var bytes []byte
|
||||
ba, err := gsaa.WriteBrowser(gsaa.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, ba...)
|
||||
bb, err := gsab.WriteBrowser(gsab.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bb...)
|
||||
bc, err := gsac.WriteBrowser(gsac.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bc...)
|
||||
bd, err := gsad.WriteBrowser(gsad.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bd...)
|
||||
be, err := gsae.WriteBrowser(gsae.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, be...)
|
||||
bf, err := gsaf.WriteBrowser(gsaf.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bf...)
|
||||
bg, err := gsag.WriteBrowser(gsag.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bg...)
|
||||
bh, err := gsah.WriteBrowser(gsah.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bh...)
|
||||
bi, err := gsai.WriteBrowser(gsai.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bi...)
|
||||
bj, err := gsaj.WriteBrowser(gsaj.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bj...)
|
||||
bk, err := gsak.WriteBrowser(gsak.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bk...)
|
||||
bl, err := gsal.WriteBrowser(gsal.FS)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
bytes = append(bytes, bl...)
|
||||
return bytes, nil
|
||||
}
|
||||
|
||||
func WriteTBZ() error {
|
||||
bytes, err := TBZBytes()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = ioutil.WriteFile("gingershrew-68.9.0.en-US.linux-x86_64.tar.bz2", bytes, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
12
import/import_test.go
Normal file
12
import/import_test.go
Normal file
@ -0,0 +1,12 @@
|
||||
package gingershrew
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestWriteTBZ(t *testing.T) {
|
||||
if err := WriteTBZ(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log("Success")
|
||||
}
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsaa
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsab
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsac
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsad
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsae
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsaf
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsag
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsah
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsai
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsaj
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsak
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -2,14 +2,12 @@ package gsal
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
// "io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
@ -25,58 +23,35 @@ func userFind() string {
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
func writeFile(val os.FileInfo, system *fs) ([]byte, error) {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
return nil, err
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
return nil, err
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
return sys.Bytes(), nil
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
return nil, fmt.Errorf("undefined unpacker error")
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
func WriteBrowser(FS *fs) ([]byte, error) {
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
return writeFile(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
|
@ -1,2 +1 @@
|
||||
package fswrite
|
||||
|
||||
|
@ -1,82 +0,0 @@
|
||||
package REPLACEME
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
// "github.com/eyedeekay/checki2cp"
|
||||
// . "github.com/eyedeekay/go-fpw"
|
||||
)
|
||||
|
||||
func userFind() string {
|
||||
if os.Geteuid() == 0 {
|
||||
log.Fatal("Do not run this application as root!")
|
||||
}
|
||||
if un, err := os.UserHomeDir(); err == nil {
|
||||
os.MkdirAll(filepath.Join(un, "i2p"), 0755)
|
||||
return un
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
var userdir = filepath.Join(userFind(), "/i2p/firefox-profiles")
|
||||
|
||||
func writeExtension(val os.FileInfo, system *fs) bool {
|
||||
var firstrun = false
|
||||
if len(val.Name()) > 3 {
|
||||
if !val.IsDir() {
|
||||
file, err := system.Open(val.Name())
|
||||
if err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
sys := bytes.NewBuffer(nil)
|
||||
if _, err := io.Copy(sys, file); err != nil {
|
||||
log.Fatal(err.Error())
|
||||
}
|
||||
log.Println(val.Name()[len(val.Name())-3:], "== xpi")
|
||||
if val.Name()[len(val.Name())-3:] == "xpi" {
|
||||
extension := filepath.Join(userdir, "extensions", val.Name())
|
||||
if _, err := os.Stat(extension); os.IsNotExist(err) {
|
||||
if err := ioutil.WriteFile(extension, sys.Bytes(), val.Mode()); err == nil {
|
||||
//ARGS = append(ARGS, extension)
|
||||
log.Println("wrote", extension)
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
firstrun = true
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.Println(filepath.Join(userdir, val.Name()), "ignored", "contents", val.Sys())
|
||||
}
|
||||
return firstrun
|
||||
}
|
||||
|
||||
func writeProfile(FS *fs) bool {
|
||||
var firstrun = false
|
||||
if embedded, err := FS.Readdir(-1); err != nil {
|
||||
log.Fatal("Extension error, embedded extension not read.", err)
|
||||
} else {
|
||||
os.MkdirAll(filepath.Join(userdir, "extensions"), 0755)
|
||||
/*err := ioutil.WriteFile(filepath.Join(userdir, "extension-settings.json"), []byte(EXTENSIONPREFS), 0644)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}*/
|
||||
for _, val := range embedded {
|
||||
if val.IsDir() {
|
||||
os.MkdirAll(filepath.Join(userdir, val.Name()), val.Mode())
|
||||
} else {
|
||||
firstrun = writeExtension(val, FS)
|
||||
}
|
||||
}
|
||||
}
|
||||
return firstrun
|
||||
}
|
||||
|
Reference in New Issue
Block a user