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

86 lines
1.9 KiB
Go
Raw Normal View History

2022-01-16 21:23:00 -05:00
package tbsupervise
import (
2022-01-16 22:04:35 -05:00
"fmt"
"log"
2022-01-16 21:23:00 -05:00
"os"
"os/exec"
"path/filepath"
tbget "i2pgit.org/idk/i2p.plugins.tor-manager/get"
)
var wd, _ = os.Getwd()
var UNPACK_URL = tbget.UNPACK_URL
//var DEFAULT_TB_LANG = tbget.DefaultIETFLang
//var DEFAULT_TB_DIRECTORY = filepath.Join(UNPACK_URL, "tor-browser"+"_"+DEFAULT_TB_LANG)
//var DEFAULT_TB_PATH = filepath.Join(DEFAULT_TB_DIRECTORY, "Browser", "start-tor-browser")
2022-01-16 21:23:00 -05:00
var (
OS = tbget.OS
ARCH = tbget.ARCH
)
type Supervisor struct {
UnpackPath string
Lang string
cmd *exec.Cmd
}
func (s *Supervisor) TBPath() string {
return filepath.Join(s.UnpackPath, "Browser", "start-tor-browser")
}
func (s *Supervisor) TorPath() string {
return filepath.Join(s.UnpackPath, "Browser", "TorBrowser", "tor")
}
func (s *Supervisor) TorDataPath() string {
return filepath.Join(s.UnpackPath, "Browser", "TorBrowser", "Data")
}
func (s *Supervisor) RunTBWithLang() error {
2022-01-16 21:23:00 -05:00
tbget.ARCH = ARCH
if s.Lang == "" {
s.Lang = DEFAULT_TB_LANG
2022-01-16 21:23:00 -05:00
}
if s.UnpackPath == "" {
s.UnpackPath = DEFAULT_TB_PATH
}
log.Println("running tor browser with lang", s.Lang, s.UnpackPath)
2022-01-16 21:23:00 -05:00
switch OS {
case "linux":
if tbget.FileExists(s.UnpackPath) {
log.Println("running tor browser with lang", s.Lang, s.UnpackPath)
s.cmd = exec.Command(s.UnpackPath)
s.cmd.Stdout = os.Stdout
s.cmd.Stderr = os.Stderr
return s.cmd.Run()
2022-01-16 22:04:35 -05:00
} else {
log.Println("tor browser not found at", s.UnpackPath)
return fmt.Errorf("tor browser not found at %s", s.UnpackPath)
2022-01-16 22:04:35 -05:00
}
2022-01-16 21:23:00 -05:00
case "darwin":
2022-01-16 22:04:35 -05:00
cmd := exec.Command("/usr/bin/env", "open", "-a", "\"Tor Browser.app\"")
cmd.Dir = DEFAULT_TB_DIRECTORY
2022-01-16 21:23:00 -05:00
return cmd.Run()
case "windows":
cmd := exec.Command("cmd", "/c", "start", "\""+s.UnpackPath+"\"", "\"Tor Browser.exe\"")
2022-01-16 22:04:35 -05:00
cmd.Dir = DEFAULT_TB_DIRECTORY
2022-01-16 21:23:00 -05:00
return cmd.Run()
default:
}
return nil
}
func NewSupervisor(tbPath, lang string) *Supervisor {
return &Supervisor{
UnpackPath: tbPath,
Lang: lang,
}
}