summaryrefslogtreecommitdiff
path: root/Demo/scripts
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1992-03-02 16:18:31 +0000
committerGuido van Rossum <guido@python.org>1992-03-02 16:18:31 +0000
commitfda0e42a1902b816107411d963a05c1eba8e0534 (patch)
tree04c7b7d11028a2a6e645832755a87fb8f324e534 /Demo/scripts
parent858f44199ba16881d5b99b45a4701e6131db5a08 (diff)
downloadcpython-fda0e42a1902b816107411d963a05c1eba8e0534.tar.gz
Check for binaries and non-python scripts.
Diffstat (limited to 'Demo/scripts')
-rwxr-xr-xDemo/scripts/eqfix.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/Demo/scripts/eqfix.py b/Demo/scripts/eqfix.py
index 3322b7afbf..b96abf4f45 100755
--- a/Demo/scripts/eqfix.py
+++ b/Demo/scripts/eqfix.py
@@ -14,6 +14,9 @@
# Symbolic links are always ignored (except as explicit directory
# arguments). Of course, the original file is kept as a back-up
# (with a "~" attached to its name).
+# It complains about binaries (files containing null bytes)
+# and about files that are ostensibly not Python files: if the first
+# line starts with '#!' and does not contain the string 'python'.
#
# Changes made are reported to stdout in a diff-like format.
#
@@ -31,6 +34,7 @@ import regex
import posix
import path
from stat import *
+import string
err = sys.stderr.write
dbg = err
@@ -94,6 +98,20 @@ def fix(filename):
line = f.readline()
if not line: break
lineno = lineno + 1
+ if g is None and '\0' in line:
+ # Check for binary files
+ err(filename + ': contains null bytes; not fixed\n')
+ f.close()
+ return 1
+ if lineno == 1 and g is None and line[:2] == '#!':
+ # Check for non-Python scripts
+ words = string.split(line[2:])
+ if words and regex.search('[pP]ython', words[0]) < 0:
+ msg = filename + ': ' + words[0]
+ msg = msg + ' script; not fixed\n'
+ err(msg)
+ f.close()
+ return 1
while line[-2:] == '\\\n':
nextline = f.readline()
if not nextline: break