Command Line Default Options in Linearized Plain Text

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

几年前,我创建了 xcop,一个简单的命令行工具,可以检查XML文件的样式。它类似于Java的 Checkstyle 和Python的 Pep8,但用于XML。使用 xcop 很简单:只需使用一些命令行参数运行它,它会返回在您的XML文件中找到的错误列表(如果有)。然而,其中一些参数可能作为默认值更加方便,而不是在每次执行时通过命令行传递它们,我们可以将它们存储在某个配置文件中。问题是:这个文件的最佳格式是什么?YAMLJSON 还是 TOML?都不是!我建议使用纯文本。

假设你希望 xcop 检查存储库中的所有 *.xml 文件,但忽略 .idea/ 目录中的XML文件。您还希望确保所有XML文件在其引导中都有许可证。以下是您调用 xcop 的方式:

你必须在所有调用 xcop 的地方使用这组参数:构建脚本、CI/CD流水线以及在你检查一切是否正确时的笔记本电脑上。我们有时会创建一个名为 run_xcop.sh 的新Bash文件,其中只包含这一个命令。

我建议一个更好的解决方案。你可以在代码库的根目录中创建一个名为 .xcop 的纯文本文件,并将所有所需的“默认”命令行选项逐行放入其中。

现在,你可以像这样调用工具:

它将找到.xcop文件并从中读取所有行,将每一行都视为命令行参数。它基本上将命令行中提供的内容与在文件中找到的默认值进行连接

我认为这种方法比YAML、JSON、XML、TOML、INI和其他配置格式要好得多,因为它不需要我们用户学习两种格式:一种用于命令行选项,另一种用于配置文件。我们只需学习一种格式,无论是在“手动”调用工具时还是在文件中配置其行为时都可以互换使用。

顺便说一下,可以通过创建~/.xcop文件(在用户的主目录中)来全局配置xcop的行为。这个文件中的默认值也将与命令行中提供的值以及本地.xcop文件中找到的值进行连接。

我使用相同原则设计了一些其他命令行工具,包括pddtexqctexsc

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-18 at 05:13

sixnines availability badge   GitHub stars