#alfred-workflow #workflow #alfred

powerpack

⚡ 使用 Rust 构建工作流,为 Alfred 工作流提供超级动力!

12 个版本

0.5.0 2023年12月31日
0.4.2 2022年9月20日
0.4.1 2022年3月20日
0.2.1 2021年9月4日
0.1.0 2021年3月31日

#1194 in 命令行工具

MIT/Apache

31KB
360

⚡ powerpack

Crates.io Version Docs.rs Latest Build Status

使用 Rust 🦀 构建工作流,为您的 Alfred 🎩 工作流提供超级动力!

🚀 开始

此项目包含一个 powerpack 包,它提供了用于在 Rust 中开发脚本筛选 Alfred 工作流的类型。它还提供了一个命令行工具,用于初始化、构建和安装使用 powerpack 包构建的工作流。

首先,安装命令行工具。

cargo install powerpack-cli

现在使用类似以下 API 的命令创建一个新的项目:cargo newcargo init

powerpack new myworkflow && cd myworkflow

这将为 Rust 创建一个新的项目,并在包含有关 Alfred 工作流信息的 workflow/ 目录中创建一个目录。以下将创建工作流的发布构建并将其复制到 workflow/ 目录。

powerpack build --release

现在您可以将它链接到 Alfred。以下将 workflow/ 目录链接到 Alfred 首选项文件夹。

powerpack link

现在您可以从 Alfred 运行工作流 ✨!

要打包 .alfredworkflow 文件以发布,可以运行以下命令。

powerpack package

发布将可在 target/workflow/myworkflow.alfredworkflow 中找到。

🤸 使用方法

以下是一个使用 powerpack 构建的 "Hello World!" Alfred 工作流。

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(())
}

这将渲染出以下所示的项目。

image

👷 GitHub Action

setup-crate 可用于在 GitHub Actions 工作流中安装 powerpack。例如

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`

💡 示例

以下项目是使用 powerpack 构建的。

许可

许可证为以下之一

由您选择。

依赖项

~0.7–1.7MB
~36K SLoC