当 gofmt 建议更改时,让 gofmt 以退出状态 1 退出?
Make gofmt exit with exit status 1, when gofmt suggests changes?
我想将 gofmt 添加到 CI/CD 管道。如果它产生变化,我希望 gofmt 以状态 1 退出。
例如,如果我 运行 gofmt -s -l .
并且列出了一些文件。我希望它以状态 1 退出。现在,当我 运行 echo $?
给我 0 时,即使列出了一些包含 gofmt 更改的文件。
我查看了文档,没有找到相应的命令行选项。有 bash 技巧可以做到吗?
您只需要通过检查 wc -l
的输出是否为空然后 运行 二进制文件 [=14= 来确保 gofmt
是否再列出一行输出] 将退出代码设置为 1
以调用 shell 或使用 exit 1
显式退出脚本。
if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
exit 1
fi
当你说 gofmt
实际上 returns $?
为 0
即使列出了文件?在这种情况下你也可以简单地做
if gofmt -s -l . > /dev/null; then
exit 1
fi
上面的 if
条件依赖于 gofmt
返回的退出代码,因为 0
表示命令成功,条件将断言为真。
您可以使用
test -z $(gofmt -l .)
我想将 gofmt 添加到 CI/CD 管道。如果它产生变化,我希望 gofmt 以状态 1 退出。
例如,如果我 运行 gofmt -s -l .
并且列出了一些文件。我希望它以状态 1 退出。现在,当我 运行 echo $?
给我 0 时,即使列出了一些包含 gofmt 更改的文件。
我查看了文档,没有找到相应的命令行选项。有 bash 技巧可以做到吗?
您只需要通过检查 wc -l
的输出是否为空然后 运行 二进制文件 [=14= 来确保 gofmt
是否再列出一行输出] 将退出代码设置为 1
以调用 shell 或使用 exit 1
显式退出脚本。
if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
exit 1
fi
当你说 gofmt
实际上 returns $?
为 0
即使列出了文件?在这种情况下你也可以简单地做
if gofmt -s -l . > /dev/null; then
exit 1
fi
上面的 if
条件依赖于 gofmt
返回的退出代码,因为 0
表示命令成功,条件将断言为真。
您可以使用
test -z $(gofmt -l .)