Skip to content

gitkanghub/powerpack

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ 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.

About

⚡ Supercharge your Alfred workflows by building them in Rust!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 98.4%
  • Shell 1.6%