5个版本
0.1.4 | 2023年5月18日 |
---|---|
0.1.3 | 2023年5月15日 |
0.1.2 | 2023年5月14日 |
0.1.1 | 2023年5月12日 |
0.1.0 | 2023年5月12日 |
#1896 在 命令行工具
每月 61 次下载
21KB
468 行
::: :::::::: :::::::: ::: ::::::::::: :+: :+: :+: :+: :+: :+: :+: +:+ +:+ +:+ +:+ +:+ +:+ +#+ +:+ +#+ +#+ +#+ +#+ +#+#+#+#+#+ +#+ +#+ +#+ +#+ #+# #+# #+# #+# #+# #+# ### ########## ######## ########## ###########
这是一个简单的 CLI 工具,用于管理、测试和运行您的42个项目。
安装
需求
- Rust
- Norminette (可选)
安装
从 GitHub
cargo install --git https://github.com/herbievine/42-cli.git
从 crates.io
cargo install ftcli
设置别名
我们建议将此行添加到您的 .bashrc
或 .zshrc
,以持久保存 ft
别名。
alias ft="ftcli"
用法
当您的项目中有配置文件时,42 CLI 将尝试运行您的命令。这些命令有一些特殊的属性,例如安装 MLX 和在特定目录中执行命令。
配置文件
您需要在每个项目中创建一个 42-cli.toml
文件。此文件看起来可能如下所示
# The name of the project
name = "push_swap"
[scripts]
build = { cmd = "make" }
run = [
{ cmd = "./push_swap 8 2 -2 0 2147483647" },
{ cmd = "./push_swap invalid :(" },
]
示例
在这里,它在 so_long
项目中使用。每个脚本由一个对象定义(除了 run
和 test
,它们包含一个对象数组),具有特殊的键来自动化您的开发。
name = "so_long"
[scripts]
build = { cmd = "make", mlx = true, mlx_dir = "minilibx" }
run = [{ cmd = "./so_long maps/small.ber" }]
clean = { cmd = "make fclean", mlx = true, mlx_dir = "minilibx" }
lint = { cmd = "norminette ." }
这里有4个脚本
build
,它将在安装 MLX 到minilibx
目录后运行make
。run
,它将在运行build
(如果存在)后执行,并运行./so_long maps/small.ber
(clean
也可以在最后运行。请参阅下面的API参考)clean
,它将运行make fclean
,然后删除 MLX。lint
,它简单地运行 norminette 在您的代码上。
这里还有一个使用 ft_printf
的示例,其中包含一个测试套件以执行
name = "ft_printf"
[scripts]
build = { cmd = "make" }
test = [
{ cmd = "git clone https://github.com/Tripouille/printfTester.git tester" },
{ cmd = "make m", dir = "tester" },
{ cmd = "rm -rf tester" }
]
clean = { cmd = "make fclean" }
lint = { cmd = "norminette ." }
在这个示例中,您会注意到有一个 test
脚本,它按顺序执行定义的脚本。该 test
脚本将执行 build
脚本,并在完成后(只有当它们被定义时)运行 clean
脚本。
CI/CD 中的使用
如果您想自动化部署,或者简单地在单个命令中运行您每个项目的命令,您可以在目录的头部创建一个配置文件,如下所示
42/
├─ libft/
│ ├─ 42-cli.toml
├─ ft_printf/
│ ├─ 42-cli.toml
├─ get_next_line/
│ ├─ 42-cli.toml
├─ 42-cli.toml
根 42-cli.toml
文件应包含一个名为 projects
的键,其中包含您定义的所有项目作为字符串。
name = "42"
projects = [
"libft",
"ft_printf",
"get_next_line"
]
# Leave this empty
[scripts]
42 CLI 将尝试在每个定义的项目中运行您的命令,如果不存在,则将其跳过。
注意:不能以 root 权限运行
run
命令。
API 参考
帮助
显示帮助菜单。
ft help
构建
使用在 42-cli.toml
文件中定义的 build
脚本构建您的项目。
ft build
选项
-s, --silent
:不打印构建脚本的输出。-h, --help
:打印帮助信息。
运行
使用在 42-cli.toml
文件中定义的命令运行您的项目。如果定义了,它将首先运行 build
脚本。
ft run
选项
-s, --silent
:不打印运行脚本的输出。-c, --clean
:运行在42-cli.toml
文件中定义的清理脚本。-h, --help
:打印帮助信息。
测试
运行在 42-cli.toml
文件中定义的测试脚本。如果定义了,它将首先运行 build
脚本,并在测试完成后(即使失败)运行 clean
脚本。
fourtytwo-cli test
选项
-s, --silent
:不打印测试脚本的输出。-h, --help
:打印帮助信息。
清理
运行在 42-cli.toml
文件中定义的清理脚本。
fourtytwo-cli clean
选项
-s, --silent
:不打印清理脚本的输出。-h, --help
:打印帮助信息。
代码风格检查
运行在 42-cli.toml
文件中定义的代码风格检查脚本。
fourtytwo-cli lint
选项
-s, --silent
:不打印代码风格检查脚本的输出。-h, --help
:打印帮助信息。
支持/贡献
如果您发现了一个错误或有一个功能请求,请创建一个问题。如果您想做出贡献,请创建一个 pull request。
依赖项
~2–12MB
~98K SLoC