- Created by rossmacarthur
- π Last Updated: 21/12/22 14:26:19
- π Stars on GitHub: 31
- Love this? Consider supporting the creator by Starring or Sponsoring this on GitHub!
- Get Latest Release
- Get Source Code
From their README
β‘ powerpack
Supercharge your Alfred π© workflows by building them in Rust π¦!
π Getting started
This project contains a powerpack
crate which provides types for developing
script filter Alfred workflows in Rust. It also provides a command line tool to
initialize, build, and install workflows built using the powerpack
crate.
Firstly, install the command line tool.
cargo install powerpack-cli
Now create a new project using a similar API as cargo new
or cargo init
.
powerpack new myworkflow && cd myworkflow
This will create a new Rust project as well as a workflow/
directory
containing information about your Alfred workflow. The following will create
a release build of the workflow and copy it to the workflow/
directory.
powerpack build --release
Now you can link it to Alfred. The following will symlink the workflow/
directory to the Alfred preferences folder.
powerpack link
Now you can run the workflow from Alfred β¨!
To package a .alfredworkflow
file for release you can run the following.
powerpack package
The release will be available at target/workflow/myworkflow.alfredworkflow
.
π€Έ Usage
The following is a "Hello World!" Alfred workflow built using powerpack
.
use std::env;
use std:(error):Error;
use std::iter;
fn main() -> Result<(), Box> {
// Alfred passes in a single argument for the user query.
let arg = env::args().nth(1);
let query = arg.as_deref().unwrap_or("");
// Create an item to show in the Alfred drop down.
let item = powerpack:(Item):new("Hello World!")
.subtitle(format!("Your query was '{}'", query));
// Output the item to Alfred!
powerpack::output(iter::once(item))?;
Ok(())
}
This would render an item as shown.
π· GitHub Action
setup-crate
can be used to install powerpack
in a GitHub Actions
workflow. For example:
steps:
- uses: actions/[email protected]
- uses: extractions/[email protected]
with:
owner: rossmacarthur
name: powerpack
- run: powerpack package
# produces an artifact at `target/workflow/{name}.alfredworkflow`
π‘ Examples
The following projects are built using powerpack
.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.