diff --git a/core/pymod/core/argcheck.py b/core/pymod/core/argcheck.py index 4d926736b03b31401c093909908c0e681b06fe11..c8173512df5468a6f10312a4fc4b57899f42f5c6 100644 --- a/core/pymod/core/argcheck.py +++ b/core/pymod/core/argcheck.py @@ -68,10 +68,16 @@ def FileExtension(prefix, exit_status, file, extensions, gz=False): is_gz = True filename, fileext = os.path.splitext(filename) if not gz: - sys.stderr.write('%s file extension not supported: %s\n' % (prefix, file)) + extension_string = ', '.join(extensions) + sys.stderr.write('%s file extension not supported: %s. ' % (prefix, file) + +'Allowed extensions are: %s\n' % extension_string) sys.exit(exit_status) if fileext == '': - sys.stderr.write('%s file extension not supported: %s\n' % (prefix, file)) + extension_string = ', '.join(extensions) + if gz: + extension_string += ', ' + '.gz, '.join(extensions) + '.gz' + sys.stderr.write('%s file extension not supported: %s. ' % (prefix, file) + +'Allowed extensions are: %s\n' % extension_string) sys.exit(exit_status) fileext = fileext[1:].lower() for ext in extensions: @@ -80,7 +86,11 @@ def FileExtension(prefix, exit_status, file, extensions, gz=False): return os.path.basename(filename), fileext, is_gz else: return os.path.basename(filename), fileext - sys.stderr.write('%s file extension not supported: %s\n' % (prefix, file)) + extension_string = ', '.join(extensions) + if gz: + extension_string += ', ' + '.gz, '.join(extensions) + '.gz' + sys.stderr.write('%s file extension not supported: %s. ' % (prefix, file) + +'Allowed extensions are: %s\n' % extension_string) sys.exit(exit_status) __all__ = ( diff --git a/core/tests/test_argcheck.py b/core/tests/test_argcheck.py index 51e8a8ac2b77a656a59887171a1a946f2920c004..06b7f9d800306f7c83b408144f599afeef4efeb5 100644 --- a/core/tests/test_argcheck.py +++ b/core/tests/test_argcheck.py @@ -66,7 +66,8 @@ class ArgcheckTests(unittest.TestCase): 'noextension', ['py']) self.assertEqual(ec.exception.code, 27) self.assertEqual(err.getvalue().strip(), - 'Argcheck test file extension not supported: noextension') + 'Argcheck test file extension not supported: noextension. ' + +'Allowed extensions are: py') def testFileExtensionFalseGZ(self): # make sure we fail outside gz mode if a gz extension is provided @@ -76,7 +77,8 @@ class ArgcheckTests(unittest.TestCase): 'wrongname.gz', ['py']) self.assertEqual(ec.exception.code, 26) self.assertEqual(err.getvalue().strip(), - 'Argcheck test file extension not supported: wrongname.gz') + 'Argcheck test file extension not supported: wrongname.gz.' + +' Allowed extensions are: py') def testFileExtensionFalse(self): # check file name with unknown extension @@ -86,7 +88,8 @@ class ArgcheckTests(unittest.TestCase): 'unknown.ext', ['py']) self.assertEqual(ec.exception.code, 25) self.assertEqual(err.getvalue().strip(), - 'Argcheck test file extension not supported: unknown.ext') + 'Argcheck test file extension not supported: unknown.ext. ' + +'Allowed extensions are: py') if __name__ == "__main__": from ost import testutils diff --git a/extras/pre-commit b/extras/pre-commit index 2f15dd49d581cc28ed7046de11921a65348af08e..f7380481415cf668b8261cbdcca771b5aa0eb934 100755 --- a/extras/pre-commit +++ b/extras/pre-commit @@ -94,14 +94,14 @@ def CheckWithespaces(): FailMsg("Found trailing whitespace(s):\n%s" % '\n'.join(output), 8) def GetFileType(filepath): + if filepath.endswith('.py'): + return "python" try: fo = subprocess.check_output(['file', filepath], shell=False) except Exception, e: FailMsg("Failed to run 'file %s': '%s'" % (filepath, str(e)), 11) fo = fo.strip() - if fo.endswith('.py'): - return "python" - elif fo == "%s: a python script text executable" % filepath: + if fo == "%s: a python script text executable" % filepath: return "python" elif fo == "%s: a ost script text executable" % filepath: return "python"