diff mbox

[contrib,committed] check_GNU_style.py: Read stdin if file argument is '-'

Message ID dc443913-8b8c-b4a0-b70e-b41a475b0077@mentor.com
State New
Headers show

Commit Message

Tom de Vries May 29, 2017, 7:37 a.m. UTC
Hi,

this patch makes check_GNU_style.py read from stdin if the file argument 
is '-', similar to what check_GNU_style.sh does.

Committed.

Thanks,
- Tom
diff mbox

Patch

check_GNU_style.py: Read stdin if file argument is '-'

2017-05-28  Tom de Vries  <tom@codesourcery.com>

	* check_GNU_style_lib.py (check_GNU_style_file): Treat file argument as
	file handle.  Add and handle file_encoding argument.
	* check_GNU_style.py (main): Handle '-' file argument.  Call
	check_GNU_style_file with file handle as argument.

---
 contrib/check_GNU_style.py     | 10 +++++++++-
 contrib/check_GNU_style_lib.py |  5 ++---
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/contrib/check_GNU_style.py b/contrib/check_GNU_style.py
index 6970ddf..61faa29 100755
--- a/contrib/check_GNU_style.py
+++ b/contrib/check_GNU_style.py
@@ -21,6 +21,7 @@ 
 # <http://www.gnu.org/licenses/>.  */
 
 import argparse
+import sys
 from check_GNU_style_lib import check_GNU_style_file
 
 def main():
@@ -30,6 +31,13 @@  def main():
         help = 'Display format',
         choices = ['stdio', 'quickfix'])
     args = parser.parse_args()
-    check_GNU_style_file(args.file, args.format)
+    filename = args.file
+    format = args.format
+
+    if filename == '-':
+        check_GNU_style_file(sys.stdin, None, format)
+    else:
+        with open(filename, 'rb') as diff_file:
+            check_GNU_style_file(diff_file, 'utf-8', format)
 
 main()
diff --git a/contrib/check_GNU_style_lib.py b/contrib/check_GNU_style_lib.py
index d924e68..e1031df 100755
--- a/contrib/check_GNU_style_lib.py
+++ b/contrib/check_GNU_style_lib.py
@@ -223,7 +223,7 @@  class LineLengthTest(unittest.TestCase):
         self.assertEqual(r.console_error,
             self.check.limit * 'a' + error_string(' = 123;'))
 
-def check_GNU_style_file(file, format):
+def check_GNU_style_file(file, file_encoding, format):
     checks = [LineLengthCheck(), SpacesCheck(), TrailingWhitespaceCheck(),
         SentenceSeparatorCheck(), SentenceEndOfCommentCheck(),
         SentenceDotEndCheck(), FunctionParenthesisCheck(),
@@ -231,8 +231,7 @@  def check_GNU_style_file(file, format):
         BracesOnSeparateLineCheck(), TrailinigOperatorCheck()]
     errors = []
 
-    with open(file, 'rb') as diff_file:
-        patch = PatchSet(diff_file, encoding = 'utf-8')
+    patch = PatchSet(file, encoding=file_encoding)
 
     for pfile in patch.added_files + patch.modified_files:
         t = pfile.target_file.lstrip('b/')