36 个版本 (8 个重大更新)

新版本 0.9.0 2024 年 8 月 21 日
0.8.1 2024 年 7 月 30 日
0.7.3 2024 年 7 月 22 日
0.1.12 2024 年 3 月 23 日

#61 in 开发工具

Download history 345/week @ 2024-05-03 57/week @ 2024-05-10 382/week @ 2024-05-17 302/week @ 2024-05-24 381/week @ 2024-05-31 79/week @ 2024-06-07 215/week @ 2024-06-14 330/week @ 2024-06-21 105/week @ 2024-06-28 151/week @ 2024-07-05 72/week @ 2024-07-12 547/week @ 2024-07-19 376/week @ 2024-07-26 192/week @ 2024-08-02 121/week @ 2024-08-09 193/week @ 2024-08-16

943 每月下载量

MIT 和可能 CC-PDDC

84KB
2K SLoC

Rust 1.5K SLoC // 0.0% comments Nushell 297 SLoC // 0.1% comments BASH 40 SLoC Zsh 29 SLoC JavaScript 3 SLoC

nur - 基于 nu shell 的任务运行器

nur 是一个简单但非常强大的任务运行器。它借鉴了 b5just 的想法,但使用 nu shell 脚本 来定义任务。这允许定义结构良好的任务,同时能够在任务中使用 nu 的超级功能。

快速概览和示例

nur 允许您执行名为 nurfile 的文件中定义的任务。它将在当前工作目录及其所有父目录中查找此文件。当找到 nurfile 时,它将切换到找到文件的目录,然后 source 文件到 nu 脚本中。您可以定义如下任务:

# Just tell anybody or the "world" hello
def "nur hello" [
    name: string = "world"  # The name to say hello to
] {
    print $"hello ($name)"
}

重要的一点是,您将任务定义为 "nur" 的子命令。如果您执行 nur hello,它将打印 "hello world",这意味着它已经执行了 nurfile 中的 hello 任务。您还可以使用 nur --help 获取有关如何使用 nur 的详细信息,并使用 nur --help hello 查看此 hello 任务接受的参数。

您还可以向 nur 任务传递参数,例如使用 nur hello bob 将 "bob" 作为名称传递给 "hello" 任务。这支持所有 nu 脚本可以处理的参数变体。您可以使用 nur --help <task-> 查看可用命令的帮助信息。

您的任务可以在nu脚本中执行您想要它们执行的操作。这允许您以非常结构化的方式使用例如docker来运行/管理项目需求。但它也可以执行像在您的shell中(如npm ci等)一样简单的命令。nur与任何编程语言、包装系统或其他事物无关。因为最终nurfile基本上是一个普通的nu脚本,您可以在其中放入任何您喜欢的。

我建议阅读使用nur以了解如何使用nur的概述。我还建议阅读有关nu文档中自定义命令的详细信息,以了解如何定义nu命令(和nur任务),并且至少阅读nu快速游览以了解一些基本知识和nu脚本的优势。

安装nur

您可以使用cargo快速为您当前用户安装nur

> cargo install nur

nur二进制文件将被添加到$HOME/.cargo/bin(或在nu外壳中为$"($env.HOME)/.cargo/bin")。请确保将其添加到$PATH(或在nu外壳中的$env.PATH)。

有关更多详细信息,请参阅nur安装文档。这还包括MacOS(使用homebrew)和Windows(使用.msi安装程序)安装方法。

使用nur

nur使用一个名为nurfile的文件来定义您的任务。此文件是一个普通的nu脚本,可以包含定义为"nur"子命令的任何nur任务。nur任务可以使用普通的nu命令功能来定义所需的参数、它们的类型等。

有关更多详细信息,请参阅使用nur的文档。

切换到nur

在大型项目或拥有多个项目时切换到nur可能会有些麻烦。推荐的流程是创建一个仅调用旧任务运行器的nurfile,然后逐步将您的任务转换为重写的nur任务。

为了简化此过程,您可以使用脚本nurify从许多现有的任务运行器生成nurfile

有关更多详细信息,请参阅切换到nur的文档。

贡献

有关更多详细信息,请参阅贡献文档

依赖项

~78–115MB
~2M SLoC