mirror of https://github.com/python/cpython
27 lines
978 B
Plaintext
27 lines
978 B
Plaintext
|
#!/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
|
|||
|
PK- |