func promptPrivilegeEscalation(icon []byte) error { var iconFile string if runtime.GOOS == "darwin" { iconFile = filepath.Join("/tmp", "escalatelantern.ico") err := filepersist.Save(iconFile, icon, 0644) if err != nil { return fmt.Errorf("Unable to persist icon to disk: %v", err) } else { log.Printf("Saved icon file to: %v", iconFile) } } err := pac.EnsureHelperToolPresent("pac-cmd", i18n.T("PAC_SETUP"), iconFile) if err != nil { return fmt.Errorf("Unable to set up pac setting tool: %s", err) } return nil }
func main() { helperFullPath := "pac-cmd" iconFullPath, _ := filepath.Abs("./icon.png") log.Debugf("Using icon at %v", iconFullPath) err := pac.EnsureHelperToolPresent(helperFullPath, "Input your password and save the world!", iconFullPath) if err != nil { fmt.Printf("Error EnsureHelperToolPresent: %s\n", err) return } err = pac.On("localhost:12345/pac") if err != nil { fmt.Printf("Error set proxy: %s\n", err) return } fmt.Println("proxy set, Enter continue...") var i int fmt.Scanf("%d\n", &i) pac.Off() }
func setUpPacTool() error { var iconFile string if runtime.GOOS == "darwin" { // We have to use a short filepath here because Cocoa won't display the // icon if the path is too long. iconFile := filepath.Join("/tmp", "escalatelantern.ico") icon, err := Asset("icons/32on.ico") if err != nil { return fmt.Errorf("Unable to load escalation prompt icon: %v", err) } else { err := filepersist.Save(iconFile, icon, 0644) if err != nil { return fmt.Errorf("Unable to persist icon to disk: %v", err) } else { log.Debugf("Saved icon file to: %v", iconFile) } } } err := pac.EnsureHelperToolPresent("pac-cmd", "Lantern would like to be your system proxy", iconFile) if err != nil { return fmt.Errorf("Unable to set up pac setting tool: %v", err) } return nil }