imports and stuff

This commit is contained in:
idk
2020-06-28 21:52:53 -04:00
parent 5fb16083fe
commit 406ad1fbc0
30 changed files with 498 additions and 1423 deletions

View File

@ -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
View File

@ -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
}

View File

@ -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
View 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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}

View File

@ -1,2 +1 @@
package fswrite

View File

@ -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
}