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