mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			713 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			713 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/bash
 | |
| INTERPRETER_UNDER_TEST="$1"
 | |
| if [[ ! -x "${INTERPRETER_UNDER_TEST}" ]]; then
 | |
|     echo "Interpreter must be the command line argument."
 | |
|     exit 4
 | |
| fi
 | |
| EXECUTABLE="$0" exec "${INTERPRETER_UNDER_TEST}" -E - <<END_OF_PYTHON
 | |
| import os
 | |
| import zipfile
 | |
| 
 | |
| namespace = {}
 | |
| 
 | |
| filename = os.environ['EXECUTABLE']
 | |
| print(f'Opening {filename} as a zipfile.')
 | |
| with zipfile.ZipFile(filename, mode='r') as exe_zip:
 | |
|   for file_info in exe_zip.infolist():
 | |
|     data = exe_zip.read(file_info)
 | |
|     exec(data, namespace, namespace)
 | |
|     break  # Only use the first file in the archive.
 | |
| 
 | |
| print('Favorite number in executable:', namespace["FAVORITE_NUMBER"])
 | |
| 
 | |
| ### Archive contents will be appended after this file. ###
 | |
| END_OF_PYTHON
 | 
