mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	 fa3a38d81f
			
		
	
	
		fa3a38d81f
		
	
	
	
	
		
			
			This is the converse of GH-15353 -- in addition to plenty of
scripts in the tree that are marked with the executable bit
(and so can be directly executed), there are a few that have
a leading `#!` which could let them be executed, but it doesn't
do anything because they don't have the executable bit set.
Here's a command which finds such files and marks them.  The
first line finds files in the tree with a `#!` line *anywhere*;
the next-to-last step checks that the *first* line is actually of
that form.  In between we filter out files that already have the
bit set, and some files that are meant as fragments to be
consumed by one or another kind of preprocessor.
    $ git grep -l '^#!' \
      | grep -vxFf <( \
          git ls-files --stage \
          | perl -lane 'print $F[3] if (!/^100644/)' \
        ) \
      | grep -ve '\.in$' -e '^Doc/includes/' \
      | while read f; do
          head -c2 "$f" | grep -qxF '#!' \
          && chmod a+x "$f"; \
        done
		
	
			
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			835 B
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			835 B
		
	
	
	
		
			Text
		
	
	
		
			Executable file
		
	
	
	
	
| #!wing
 | |
| #!version=4.0
 | |
| ##################################################################
 | |
| # Wing IDE project file                                          #
 | |
| ##################################################################
 | |
| [project attributes]
 | |
| proj.directory-list = [{'dirloc': loc('..'),
 | |
|                         'excludes': [u'.hg',
 | |
|                                      u'Lib/unittest/__pycache__',
 | |
|                                      u'Lib/unittest/test/__pycache__',
 | |
|                                      u'Lib/__pycache__',
 | |
|                                      u'build',
 | |
|                                      u'Doc/build'],
 | |
|                         'filter': '*',
 | |
|                         'include_hidden': False,
 | |
|                         'recursive': True,
 | |
|                         'watch_for_changes': True}]
 | |
| proj.file-type = 'shared'
 |