%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/python3.9/site-packages/cockpit/_vendor/bei/__pycache__/
Upload File :
Create Path :
Current File : //lib/python3.9/site-packages/cockpit/_vendor/bei/__pycache__/beiboot.cpython-39.pyc

a

��h'�@s2ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZddlm
Z
deeee
ed�dd�Zdd	�eee
ed
�dd�Zdd	�eee
ed
�d
d�Zddd�eeee
ed�dd�Zeeedd�dd�Ze
eedd�dd�Ze
eedd�dd�Zdd�dd�Zedk�r.e�dS) �N)�IO�List�Sequence�Tuple�)�make_bootloaderF)�local�tty�sh�returncCsD|r
tjnd}|r|df}n
|ddf}|r@d�dd�|D��f}|S)NZpython3z-iqz-icz8" - beiboot - "; import sys; sys.ps1 = ''; sys.ps2 = '';� css|]}t�|�VqdS)N)�shlex�quote)�.0�arg�r�?/usr/lib/python3.9/site-packages/cockpit/_vendor/bei/beiboot.py�	<genexpr>.�z%get_python_command.<locals>.<genexpr>)�sys�
executable�join)rr	r
Zinterpreter�commandrrr�get_python_commands
�r�r	)�argsr	rcGs&dg|rdgnd�|�t|dd��RS)N�sshz-trT�r	r
�r�r	rrrr�get_ssh_command3s��
�r cGs(dddg|rdgnd�|�t|d��RS)NZpodman�execz
--interactivez--ttyrrrrrrr�get_container_command:s���r"r)rr	r
rcGsg|�td||d��RS)NT)rr	r
r)r	r
rrrr�get_commandAsr#)�src�dstrcs*dd���fdd�}tj|dd���dS)N�rcsR��:d}t��|�}|sq0��|����q
Wd�n1sD0YdS)Ni)�os�read�write�flush)Z
block_size�data�r%r$rr�_threadFs
z!splice_in_thread.<locals>._threadT)�target�daemon)�	threading�Thread�start)r$r%r-rr,r�splice_in_threadEsr3)r�scriptrcCshtj|tjd��D}|jdus J�|j�|�td|j�t�|���Wd�n1sZ0YdS)N)�stdinr)	�
subprocess�Popen�PIPEr5r)r3r�exit�wait)rr4�procrrr�send_and_spliceTs
r<c	s�ddl}G��fdd�d|j�}|�|��}tj|tj|d��|��jdusNJ��j�tddt	��gdffg|j
d�����j��t
�|���td�j�t�����Wd�n1s�0YdS)	Nrcs,eZdZeeeeedd���fdd�ZdS)z%send_xz_and_splice.<locals>.ResponderN)rr�fds�stderrrc�s0�jdusJ�|dkr,�j����j��dS)Nzbeiboot.provide)r5r)r*)�selfrrr=r>�r;r4rr�do_custom_commandasz7send_xz_and_splice.<locals>.Responder.do_custom_command)�__name__�
__module__�__qualname__�strrr�intrArr@rr�	Responder`s
�rG)r5r>Zboot_xzzscript.py.xzT)Zgadgets)�fernyZInteractionResponderZInteractionAgentr6r7r8r5r)r�lenZBEIBOOT_GADGETS�encoder*�asyncio�runZcommunicater3rr9r:)rr4rHrGZagentrr@r�send_xz_and_splice]s��
rMr&cCs�t��}|jdddd�|jddd�|jdd	d�|jd
dd�|��}|joZt�d
�}|jgkrrt|d�}nd|jd
dkr�t	|jdd�d|i�}n<|jd
dkr�t
|jdd�d|i�}nt|j||jd��}|j�r t
|jd��}|��}Wd�n1�s
0Yt||�n`|j�rjt
|jd��}|��}Wd�n1�sT0Yt||�ntj|d
g|�R�dS)Nz--sh�
store_truez/Pass Python interpreter command as shell-script)�action�helpz--xzzthe xz to run remotely)rPz--scriptz2the script to run remotely (must be repl-friendly)r�*)�nargsrrrrr	�	containerr�rb)�argparse�ArgumentParser�add_argument�
parse_argsr4r'�isattyrrr r"r#r
�openr(r<�xzrM�execlp)�parserrr	r�filer4rrr�mainxs6��
((r_�__main__)FFF)rUrKr'r
r6rr0�typingrrrrZ
bootloaderr�boolrErr r"r#rF�bytesr3r<rMr_rBrrrr�<module>s0�� 	'


Zerion Mini Shell 1.0