Files
i2p.plugins.tor-updater/main.go

96 lines
2.2 KiB
Go
Raw Normal View History

package main
2022-01-16 14:45:43 -05:00
import (
2022-01-23 12:00:37 -05:00
"embed"
2022-01-16 14:45:43 -05:00
"flag"
"log"
"os"
"path/filepath"
"runtime"
2022-01-16 14:45:43 -05:00
2022-01-16 15:33:47 -05:00
"github.com/cloudfoundry/jibber_jabber"
tbserve "i2pgit.org/idk/i2p.plugins.tor-manager/serve"
2022-01-16 14:45:43 -05:00
)
2022-01-23 12:00:37 -05:00
//go:embed tor-browser/unpack/i2p.firefox/*
//go:embed tor-browser/TPO-signing-key.pub
2022-01-28 00:09:18 -05:00
//go:embed garliconion.png
//go:embed onion.png
2022-01-23 12:00:37 -05:00
var content embed.FS
func OS() string {
switch runtime.GOOS {
case "darwin":
return "mac"
case "linux":
return "linux"
case "windows":
return "win"
default:
return "unknown"
}
}
func ARCH() string {
switch runtime.GOARCH {
case "386":
return "32"
case "amd64":
return "64"
default:
return "unknown"
}
}
2022-01-16 21:22:04 -05:00
2022-01-16 14:45:43 -05:00
var (
2022-01-23 11:42:23 -05:00
lang = flag.String("lang", "", "Language to download")
system = flag.String("os", OS(), "OS/arch to download")
arch = flag.String("arch", ARCH(), "OS/arch to download")
2022-01-23 11:42:23 -05:00
i2pbrowser = flag.Bool("i2pbrowser", false, "Open I2P in Tor Browser")
torbrowser = flag.Bool("torbrowser", false, "Open Tor Browser")
2022-01-27 22:41:30 -05:00
verbose = flag.Bool("verbose", false, "Verbose output")
2022-01-16 21:22:04 -05:00
/*mirror = flag.String("mirror", "", "Mirror to use")*/
2022-01-23 11:42:23 -05:00
/*bemirror = flag.Bool("bemirror", false, "Act as an in-I2P mirror when you're done downloading")*/
2022-01-16 14:45:43 -05:00
)
func main() {
filename := filepath.Base(os.Args[0])
2022-01-16 14:45:43 -05:00
flag.Parse()
if filename == "i2pbrowser" {
log.Println("Starting I2P in Tor Browser")
*i2pbrowser = true
} else if filename == "torbrowser" {
log.Println("Starting Tor Browser")
*torbrowser = true
}
if *i2pbrowser && *torbrowser {
2022-01-23 11:42:23 -05:00
log.Fatal("Please don't open I2P and Tor Browser at the same time when running from the terminal.")
}
2022-01-16 15:33:47 -05:00
if *lang == "" {
var err error
*lang, err = jibber_jabber.DetectIETF()
if err != nil {
log.Fatal("Please specify a language", err)
}
log.Println("Using auto-detected language", *lang)
}
client, err := tbserve.NewClient("", *lang, *system, *arch, &content)
if err != nil {
log.Fatal("Couldn't create client", err)
}
//client.TBD.Profile = &content
2022-01-27 22:41:30 -05:00
if *verbose {
client.TBD.Verbose = true
}
2022-01-23 12:00:37 -05:00
client.TBS.Profile = &content
2022-01-23 11:42:23 -05:00
if *i2pbrowser {
client.TBS.RunI2PBWithLang()
} else if *torbrowser {
client.TBS.RunTBWithLang()
} else {
if err := client.Serve(); err != nil {
log.Fatal(err)
}
2022-01-16 21:22:04 -05:00
}
}