From 23388ca46c0f0c8505e21cfee2d3793159d123fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krist=C3=B3f=20T=C3=B3th?= Date: Tue, 24 Dec 2019 22:40:10 +0100 Subject: [PATCH] Support running main outside of Alfred --- main.go | 45 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 0c154d8..be0fc31 100644 --- a/main.go +++ b/main.go @@ -7,20 +7,18 @@ import ( "./trans" "github.com/deanishe/awgo" "regexp" + "fmt" ) func main() { translations := translateProgramArgs() - wf := aw.New() - wf.Run(func() { - for _, translation := range translations { - wf.NewItem(translation).Arg(translation).Valid(true) - } - wf.WarnEmpty("No results", "Try a different query?") - wf.SendFeedback() - }) + if !runningInAlfred() { + runAsCliTool(translations) + } else { + runAsAlfredWorkflow(translations) + } } func translateProgramArgs() []string { @@ -69,3 +67,34 @@ func decideWhatLanguagesToUse(word string) (string, string) { } return fromLang, toLang } + +func runningInAlfred() bool { + envVarsSetByAlfred := []string { + "alfred_version", + "alfred_workflow_uid", + "alfred_workflow_data", + } + for _, envVar := range envVarsSetByAlfred { + if _, ok := os.LookupEnv(envVar); !ok { + return false + } + } + return true +} + +func runAsCliTool(translations []string) { + for _, translation := range translations { + fmt.Println(translation) + } +} + +func runAsAlfredWorkflow(translations []string) { + wf := aw.New() + wf.Run(func() { + for _, translation := range translations { + wf.NewItem(translation).Arg(translation).Valid(true) + } + wf.WarnEmpty("No results", "Try a different query?") + wf.SendFeedback() + }) +}