From ffe7c33ef016da4ed10b6b9b26c43059b28aebfe Mon Sep 17 00:00:00 2001 From: idk Date: Sun, 16 Jan 2022 22:04:35 -0500 Subject: [PATCH] Actually start it? --- get/get.go | 9 ++++++--- main.go | 1 + supervise/supervise.go | 27 +++++++++++++++++++-------- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/get/get.go b/get/get.go index 9dc9496..e8e1de7 100644 --- a/get/get.go +++ b/get/get.go @@ -131,14 +131,14 @@ func SingleFileDownload(url, name string) (string, error) { return path, nil } -func fileExists(path string) bool { +func FileExists(path string) bool { _, err := os.Stat(path) return !os.IsNotExist(err) } func BotherToDownload(url, name string) bool { path := filepath.Join(DOWNLOAD_PATH, name) - if !fileExists(path) { + if !FileExists(path) { return true } 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) } } - if fileExists(UNPACK_URL) { + if FileExists(UNPACK_URL) { return nil } os.MkdirAll(UNPACK_URL, 0755) @@ -255,6 +255,9 @@ func UnpackUpdater(binpath string) error { } defer file.Close() io.Copy(file, tarReader) + mode := header.FileInfo().Mode() + //remember to chmod the file afterwards + file.Chmod(mode) } return nil diff --git a/main.go b/main.go index ebcd64a..ad6fd5c 100644 --- a/main.go +++ b/main.go @@ -40,6 +40,7 @@ func main() { } else { log.Printf("Signature check passed") } + log.Println("Running Tor Browser") if err := tbsupervise.RunTBWithLang(*lang); err != nil { log.Fatal(err) } diff --git a/supervise/supervise.go b/supervise/supervise.go index 3d1e476..d012093 100644 --- a/supervise/supervise.go +++ b/supervise/supervise.go @@ -1,6 +1,8 @@ package tbsupervise import ( + "fmt" + "log" "os" "os/exec" "path/filepath" @@ -12,7 +14,8 @@ var wd, _ = os.Getwd() var UNPACK_URL = filepath.Join(wd, "unpack") 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 ( OS = tbget.OS @@ -24,18 +27,26 @@ func RunTBWithLang(lang string) error { if lang == "" { lang = DEFAULT_TB_LANG } + log.Println("running tor browser with lang", lang, DEFAULT_TB_PATH) switch OS { case "linux": - cmd := exec.Command("/usr/bin/env", "sh", "-c", "./tor-browser_"+lang+"/Browser/start-tor-browser") - cmd.Dir = DEFAULT_TB_PATH - return cmd.Run() + if tbget.FileExists(DEFAULT_TB_PATH) { + log.Println("running tor browser with lang", lang, DEFAULT_TB_PATH) + 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": - cmd := exec.Command("/usr/bin/env", "open", "-a", "Tor Browser.app") - cmd.Dir = DEFAULT_TB_PATH + cmd := exec.Command("/usr/bin/env", "open", "-a", "\"Tor Browser.app\"") + cmd.Dir = DEFAULT_TB_DIRECTORY return cmd.Run() case "windows": - cmd := exec.Command("cmd", "/c", "start", "Tor Browser.exe") - cmd.Dir = DEFAULT_TB_PATH + cmd := exec.Command("cmd", "/c", "start", "\""+DEFAULT_TB_PATH+"\"", "\"Tor Browser.exe\"") + cmd.Dir = DEFAULT_TB_DIRECTORY return cmd.Run() default: }