Actually start it?

This commit is contained in:
idk
2022-01-16 22:04:35 -05:00
parent 18448b37d1
commit ffe7c33ef0
3 changed files with 26 additions and 11 deletions

View File

@ -131,14 +131,14 @@ func SingleFileDownload(url, name string) (string, error) {
return path, nil return path, nil
} }
func fileExists(path string) bool { func FileExists(path string) bool {
_, err := os.Stat(path) _, err := os.Stat(path)
return !os.IsNotExist(err) return !os.IsNotExist(err)
} }
func BotherToDownload(url, name string) bool { func BotherToDownload(url, name string) bool {
path := filepath.Join(DOWNLOAD_PATH, name) path := filepath.Join(DOWNLOAD_PATH, name)
if !fileExists(path) { if !FileExists(path) {
return true return true
} }
defer ioutil.WriteFile(filepath.Join(DOWNLOAD_PATH, name+".last-url"), []byte(url), 0644) defer ioutil.WriteFile(filepath.Join(DOWNLOAD_PATH, name+".last-url"), []byte(url), 0644)
@ -217,7 +217,7 @@ func UnpackUpdater(binpath string) error {
return fmt.Errorf("UnpackUpdater: osx open/mount fail %s", err) return fmt.Errorf("UnpackUpdater: osx open/mount fail %s", err)
} }
} }
if fileExists(UNPACK_URL) { if FileExists(UNPACK_URL) {
return nil return nil
} }
os.MkdirAll(UNPACK_URL, 0755) os.MkdirAll(UNPACK_URL, 0755)
@ -255,6 +255,9 @@ func UnpackUpdater(binpath string) error {
} }
defer file.Close() defer file.Close()
io.Copy(file, tarReader) io.Copy(file, tarReader)
mode := header.FileInfo().Mode()
//remember to chmod the file afterwards
file.Chmod(mode)
} }
return nil return nil

View File

@ -40,6 +40,7 @@ func main() {
} else { } else {
log.Printf("Signature check passed") log.Printf("Signature check passed")
} }
log.Println("Running Tor Browser")
if err := tbsupervise.RunTBWithLang(*lang); err != nil { if err := tbsupervise.RunTBWithLang(*lang); err != nil {
log.Fatal(err) log.Fatal(err)
} }

View File

@ -1,6 +1,8 @@
package tbsupervise package tbsupervise
import ( import (
"fmt"
"log"
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
@ -12,7 +14,8 @@ var wd, _ = os.Getwd()
var UNPACK_URL = filepath.Join(wd, "unpack") var UNPACK_URL = filepath.Join(wd, "unpack")
var DEFAULT_TB_LANG = tbget.DefaultIETFLang var DEFAULT_TB_LANG = tbget.DefaultIETFLang
var DEFAULT_TB_PATH = filepath.Join(UNPACK_URL, "tor-browser"+"_"+DEFAULT_TB_LANG) 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")
var ( var (
OS = tbget.OS OS = tbget.OS
@ -24,18 +27,26 @@ func RunTBWithLang(lang string) error {
if lang == "" { if lang == "" {
lang = DEFAULT_TB_LANG lang = DEFAULT_TB_LANG
} }
log.Println("running tor browser with lang", lang, DEFAULT_TB_PATH)
switch OS { switch OS {
case "linux": case "linux":
cmd := exec.Command("/usr/bin/env", "sh", "-c", "./tor-browser_"+lang+"/Browser/start-tor-browser") if tbget.FileExists(DEFAULT_TB_PATH) {
cmd.Dir = DEFAULT_TB_PATH log.Println("running tor browser with lang", lang, DEFAULT_TB_PATH)
return cmd.Run() cmd := exec.Command(DEFAULT_TB_PATH)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
} else {
log.Println("tor browser not found at", DEFAULT_TB_PATH)
return fmt.Errorf("tor browser not found at %s", DEFAULT_TB_PATH)
}
case "darwin": case "darwin":
cmd := exec.Command("/usr/bin/env", "open", "-a", "Tor Browser.app") cmd := exec.Command("/usr/bin/env", "open", "-a", "\"Tor Browser.app\"")
cmd.Dir = DEFAULT_TB_PATH cmd.Dir = DEFAULT_TB_DIRECTORY
return cmd.Run() return cmd.Run()
case "windows": case "windows":
cmd := exec.Command("cmd", "/c", "start", "Tor Browser.exe") cmd := exec.Command("cmd", "/c", "start", "\""+DEFAULT_TB_PATH+"\"", "\"Tor Browser.exe\"")
cmd.Dir = DEFAULT_TB_PATH cmd.Dir = DEFAULT_TB_DIRECTORY
return cmd.Run() return cmd.Run()
default: default:
} }