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文件中找到的错误列表(如果有)。然而,其中一些参数可能作为默认值更加方便,而不是在每次执行时通过命令行传递它们,我们可以将它们存储在某个配置文件中。问题是:这个文件的最佳格式是什么?YAML、JSON 还是 TOML?都不是!我建议使用纯文本。
假设你希望 xcop
检查存储库中的所有 *.xml
文件,但忽略 .idea/
目录中的XML文件。您还希望确保所有XML文件在其引导中都有许可证。以下是您调用 xcop
的方式:
你必须在所有调用 xcop
的地方使用这组参数:构建脚本、CI/CD流水线以及在你检查一切是否正确时的笔记本电脑上。我们有时会创建一个名为 run_xcop.sh
的新Bash文件,其中只包含这一个命令。
我建议一个更好的解决方案。你可以在代码库的根目录中创建一个名为 .xcop
的纯文本文件,并将所有所需的“默认”命令行选项逐行放入其中。
现在,你可以像这样调用工具:
它将找到.xcop
文件并从中读取所有行,将每一行都视为命令行参数。它基本上将命令行中提供的内容与在文件中找到的默认值进行连接。
我认为这种方法比YAML、JSON、XML、TOML、INI和其他配置格式要好得多,因为它不需要我们用户学习两种格式:一种用于命令行选项,另一种用于配置文件。我们只需学习一种格式,无论是在“手动”调用工具时还是在文件中配置其行为时都可以互换使用。
顺便说一下,可以通过创建~/.xcop
文件(在用户的主目录中)来全局配置xcop
的行为。这个文件中的默认值也将与命令行中提供的值以及本地.xcop
文件中找到的值进行连接。
我使用相同原则设计了一些其他命令行工具,包括pdd、texqc和texsc。
Translated by ChatGPT gpt-3.5-turbo/42 on 2023-11-18 at 05:13