]> granicus.if.org Git - python/commitdiff
#2225: return nonzero status code from py_compile if not all files could be compiled.
authorGeorg Brandl <georg@python.org>
Thu, 6 Mar 2008 07:41:16 +0000 (07:41 +0000)
committerGeorg Brandl <georg@python.org>
Thu, 6 Mar 2008 07:41:16 +0000 (07:41 +0000)
Doc/library/py_compile.rst
Lib/py_compile.py
Misc/NEWS

index de9a80e2a6eabdae53ae7e698232359d09a597f6..77ed8cf4a0dfe347381e463e2a2fe811352070cc 100644 (file)
@@ -42,7 +42,12 @@ byte-code cache files in the directory containing the source code.
    structure to locate source files; it only compiles files named explicitly.
 
 When this module is run as a script, the :func:`main` is used to compile all the
-files named on the command line.
+files named on the command line.  The exit status is nonzero if one of the files
+could not be compiled.
+
+.. versionchanged:: 2.6
+
+   Added the nonzero exit status.
 
 
 .. seealso::
index 1cb41f1e0e59f9ae8fd3baae08e23d4d9f5ef600..89e80f8e6fb25fb79f2b131a92ff6a58bea01b1d 100644 (file)
@@ -154,11 +154,15 @@ def main(args=None):
     """
     if args is None:
         args = sys.argv[1:]
+    rv = 0
     for filename in args:
         try:
             compile(filename, doraise=True)
-        except PyCompileError,err:
+        except PyCompileError, err:
+            # return value to indicate at least one failure
+            rv = 1
             sys.stderr.write(err.msg)
+    return rv
 
 if __name__ == "__main__":
-    main()
+    sys.exit(main())
index 15f7f1086760f4e1e2e1c24cbb095f0d5f942790..42b95e8b296dee6948052d709fbb68eca747a810 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -18,6 +18,9 @@ Core and builtins
 Library
 -------
 
+- Issue #2225: py_compile, when executed as a script, now returns a non-
+  zero status code if not all files could be compiled successfully.
+
 - Bug #1725737: In distutil's sdist, exclude RCS, CVS etc. also in the
   root directory, and also exclude .hg, .git, .bzr, and _darcs.