当 gofmt 建议更改时,使 gofmt 以退出状态 1 退出?

Vas*_*h K 5 bash go gofmt

我想将 gofmt 添加到 CI/CD 管道中。如果它产生变化,我希望 gofmt 以状态 1 退出。

例如,如果我运行gofmt -s -l .并且列出了一些文件。我希望它以状态 1 退出。现在,当我运行时,echo $?给我 0,即使有一些文件列出了 gofmt 的更改。

我检查了文档,找不到相应的命令行选项。有 bash hack 可以做到这一点吗?

Ini*_*ian 7

您只需通过检查 的输出非空来确保是否gofmt再列出一行输出,然后运行二进制文件,将退出代码设置为调用的 shell 或用于显式退出脚本。wc -lfalse1exit 1

if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

当你说即使列出了文件gofmt实际上也会返回?在这种情况下你也可以简单地做$?0

if gofmt -s -l . > /dev/null; then
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)

上述if条件依赖于gofmtas返回的退出代码0,表明命令成功,条件将断言为 true。

  • 我知道 Golang 希望尽可能最小化,但这很容易成为“gofmt”本身的一个有价值的标志/选项。 (4认同)