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 开发工具
943 每月下载量
84KB
2K SLoC
nur - 基于 nu shell 的任务运行器
nur 是一个简单但非常强大的任务运行器。它借鉴了 b5 和 just 的想法,但使用 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