J'essaie d'intégrer la vérification de mon code à l'aide de Le problème est que pyflakes code> dans un processus de construction. J'ai défini la cible suivante dans mon
makefile code>:
recherche code> retourne
0 code> Chaque fois que même s'il y a des problèmes de code (
pyflakes code> renvoie non
0 code>) et
faire code> réussit. Idéalement, je veux exécuter le chèque sur chaque fichier source et arrêter
faire code> si au moins l'un des
-exec code> a échoué. Y a-t-il un moyen d'y parvenir? P> p>
3 Réponses :
Je suppose qu'il n'y a aucun moyen de faire trouver code> le code de sortie de
-exec code>.
Ce qui devrait fonctionner est une tuyauterie sur xargs code>:
Vous pouvez simplement pipeler la sortie de la recherche de votre propre boucle de traitement et sortir lorsque Pyflakes renvoie un statut de sortie autre que 0.
find . -iname '*.jpg' | \ while read line ; do pyflakes "$line" res=$? if [ $res -ne 0 ] ; then exit $res fi done
cmd; Si [$? -ne 0]; alors foo; fi code> est juste un anticipateur; la bonne façon de coder c'est
si cmd; alors foo; fi code> ou simplement
cmd || foo code>.
Je ne vois aucune amélioration. Le code que vous voulez est pyflakes "$ line" || Quittez $ $? Code>, court et simple.
Je ne vois aucun avantage à votre chemin. Le point est que c'est plus court?
L'essentiel est que c'est unidiomatic d'examiner explicitement $? Code> dans la plupart des cas; La fonction de
si code> est d'exécuter une commande et de vérifier si son code de sortie est zéro ou non.
Mettez-le mettre fin au processus de recherche par C'est ce qui se passe dans le makefile, ce n'est pas un fichier de script, si vous vous demandez sur la syntaxe. P> P> P> P> P> P >
Il suffit d'écrire -exec bash -c 'pyflakes {} || tuer $ ppid '\; code>. Pour moi, cela fonctionne un peu plus lentement que le prédicat code> -Quit code>, testé avec:
Rechercher -Name '* .cpp' \ (-print -a -exec g ++ -c {} \; o -quit \) code>.