6

pyflakesコードのチェックをビルドプロセスに統合しようとしています。my で次のターゲットを定義しましたMakefile

pyflakes:
    find $(APPLICATION_DIRECTORY) -iname "*.py" -exec pyflakes "{}" \;

問題は、コードの問題があっても毎回find返され ( return not )、成功することです。理想的には、すべてのソース ファイルでチェックを実行し、少なくとも 1 つが失敗した場合は停止したいと考えています。これを達成する方法はありますか?0pyflakes0makemake-exec

4

3 に答える 3

5

findの終了コードを返す方法はないと思います-exec
動作するはずのパイプは次のxargsとおりです。

find $(APPLICATION_DIRECTORY) -iname "*.py" |xargs -I file pyflakes file 
于 2012-08-06T22:14:21.593 に答える
3

findの出力を独自の処理ループにパイプして、pyflakesが0以外の終了ステータスを返したときに終了することができます。

find . -iname '*.jpg' | \
while read line ; do
    pyflakes "$line"
    res=$?
    if [ $res -ne 0 ] ; then
        exit $res
    fi
done
于 2012-08-06T22:17:34.460 に答える
1

によって検索プロセスを終了させます

pyflakes:
    find $(APPLICATION_DIRECTORY) -iname "*.py" -exec bash -c 'pyflakes {}; if [[ $$? != 0 ]]; then kill -INT $$PPID;fi' \;

これはmakefileに入るものであり、構文について疑問がある場合はスクリプトファイルではありません。

于 2012-08-07T00:20:35.337 に答える