AwGo — A Go library for Alfred workflows
Full-featured library to build lightning-fast workflows in a jiffy.
Features
Installation & usage
Install AwGo with:
go get -u github.com/deanishe/awgo
Typically, you'd call your program's main entry point via Workflow.Run()
.
This way, the library will rescue any panic, log the stack trace and show
an error message to the user in Alfred.
program.go:
package main
import "github.com/deanishe/awgo"
var wf *aw.Workflow
func init() {
wf = aw.New()
}
func run() {
wf.NewItem("First result!")
wf.SendFeedback()
}
func main() {
wf.Run(run)
}
In the Script Filter's Script box (Language = /bin/bash with input as
argv):
./program "$1"
Documentation
Read the docs on pkg.go.dev.
Check out the example workflows (docs), which
show how to use AwGo. Use one as a template to get your own workflow up and
running quickly.
Requirements
The library (and therefore the unit tests) rely on being run in a minimally
Alfred-like environment, as they pull configuration options from the environment
variables set by Alfred.
This means that if you want to run AwGo-based code outside Alfred, e.g. in your
shell, you must set at least the following environment variables to meaningful
values, or the library will panic:
alfred_workflow_bundleid
alfred_workflow_cache
alfred_workflow_data
And if you're using the update API, also:
alfred_workflow_version
alfred_version
(not needed for Alfred 4+)
Development
To create a sufficiently Alfred-like environment, you can source
the env.sh
script in the project root or run unit tests via the run-tests.sh
script
(which also sets up an appropriate environment before calling go test
).
Licensing & thanks
This library is released under the MIT licence. It was built with
neovim and GoLand by JetBrains.
The icon is based on the Go Gopher by Renee French.