我想将gofmt添加到CI / CD管道。如果它产生更改,我希望gofmt以状态1退出。
例如,如果我运行gofmt -s -l .
并且列出了一些文件。我希望它以状态1退出。即使运行gofmt的更改列出了一些文件,现在运行echo $?
时也会给我0。
我检查了文档,但找不到相应的命令行选项。有一个bash hack可以做到吗?
答案 0 :(得分:1)
您只需要通过检查gofmt
的输出是否为空,然后运行设置了退出代码的二进制文件wc -l
来确保false
是否再列出一行输出, 1
到调用的外壳程序,或使用exit 1
显式退出脚本。
if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
exit 1
fi
您说gofmt
实际上将$?
返回0
为if 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 .)