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

时间:2019-05-03 10:12:33

标签: bash go gofmt

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

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

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

2 个答案:

答案 0 :(得分:1)

您只需要通过检查gofmt的输出是否为空,然后运行设置了退出代码的二进制文件wc -l来确保false是否再列出一行输出, 1到调用的外壳程序,或使用exit 1显式退出脚本。

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

您说gofmt实际上将$?返回0if gofmt -s -l . > /dev/null; then exit 1 fi ,即使列出了文件,在这种情况下,您也可以简单地这样做

if

上面的gofmt条件依赖于0返回的退出代码,因为"a:3:{s:5:"email";s:21:"mrsxcvsfesr@gmail.com";s:9:"store";s:6:"testes";s:5:"token";s:34:"$P$B7efpLZUWWyB4QkhG0YaYyIwXRAj.3.";}"表示命令成功,该条件声明为true。

答案 1 :(得分:0)

你可以使用

test -z $(gofmt -l .)