관리-도구
편집 파일: bootloader.cpython-39.opt-1.pyc
a ��g� � @ s� d dl Z d dlmZmZmZmZmZmZmZ dddd�Z e ee eee e f d�dd �Zee e f eee ee f ee eee e f d �dd�Z deee ee f eee e f e d �dd�ZdS )� N)�Dict�Iterable�List�Optional�Sequence�Set�Tuplez� import sys import traceback try: ... except SystemExit: raise except BaseException: command('beiboot.exc', traceback.format_exc()) sys.exit(37) z� import contextlib import os def try_exec(argv): with contextlib.suppress(OSError): os.execvp(argv[0], argv) a� import lzma import sys def boot_xz(filename, size, args=[], send_end=False): command('beiboot.provide', size) src_xz = sys.stdin.buffer.read(size) src = lzma.decompress(src_xz) sys.argv = [filename, *args] if send_end: end() exec(src, { '__name__': '__main__', '__self_source__': src_xz, '__file__': filename}) sys.exit() )�_frameZtry_execZboot_xz)�code�imports�returnc c s^ t �| ��� D ]J}|�d�}|�d�r2|�|� q|rt|�t|� }d|d |fV qd S )N� zimport � � )�textwrap�dedent� splitlines�lstrip� startswith�add�len)r r �line�text�spaces� r �B/usr/lib/python3.9/site-packages/cockpit/_vendor/bei/bootloader.py� split_code; s r )�user_gadgets�stepsr r c c sp t tfi | ��}t| �}dd� |D �}||B D ]}t|| |�E d H q.|D ]\}}d|tt|�� fV qLd S )Nc S s h | ]\}}|�qS r r )�.0�name�_argsr r r � <setcomp>P � zyield_body.<locals>.<setcomp>� )�dict�GADGETS�setr �repr�tuple)r r r �gadgetsZprovided_gadgetsZstep_gadgetsr �argsr r r � yield_bodyF s r, )r r* r c C s� t � }g }ttd |�D ]L\}}|dkrVt|p0i | |�D ]\}}|�|| | � q8q|�|| � qd�dd� g |�|�D ��d S )Nr z...r$ c s s | ]}|� d �V qdS )� Nr )r r r r r � <genexpr>e r# z"make_bootloader.<locals>.<genexpr>r- )r'