#alfred #workflow

powerpack-env

⚡ Useful environment variables in Alfred workflows

1 unstable release

0.4.2 Sep 20, 2022

#2187 in Command line utilities

Download history 29/week @ 2022-12-08 9/week @ 2022-12-15 17/week @ 2022-12-22 13/week @ 2022-12-29 8/week @ 2023-01-05 8/week @ 2023-01-12 18/week @ 2023-01-19 19/week @ 2023-01-26 23/week @ 2023-02-02 6/week @ 2023-02-09 24/week @ 2023-02-16 5/week @ 2023-02-23 10/week @ 2023-03-02 15/week @ 2023-03-09 10/week @ 2023-03-16 36/week @ 2023-03-23

71 downloads per month
Used in powerpack

MIT/Apache

8KB

⚡ powerpack

Crates.io Version Docs.rs Latest Build Status

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<dyn Error>> {
    // 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.

image

👷 GitHub Action

setup-crate can be used to install powerpack in a GitHub Actions workflow. For example:

steps:
  - uses: actions/checkout@v2
  - uses: extractions/setup-crate@v1
    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

at your option.

No runtime deps