mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	Check for binaries and non-python scripts.
This commit is contained in:
		
							parent
							
								
									fcd1e6ed4d
								
							
						
					
					
						commit
						becdad3d5e
					
				
					 1 changed files with 18 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue