????

Your IP : 3.14.141.163


Current Path : /opt/imunify360/venv/lib/python3.11/site-packages/restore_infected/__pycache__/
Upload File :
Current File : //opt/imunify360/venv/lib/python3.11/site-packages/restore_infected/__pycache__/cli.cpython-311.pyc

�

ޡ�e�#���ddlZddlZddlZddlZddlZddlZddlmZmZm	Z	m
Z
ddlmZej
e	j��Ze�ej��d�Zed���Zed���Zed���Zed���Zed	���Zed
���Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Z d�Z!dd�Z"e#dkre"��dSdS)�N)�backup_backends�helpers�log�restore)�BackendNonApplicableErrorc�>���tj������fd�}|S)Nc���d�jvr-|r+|�dd�|��z���d||d�|��dS)N�
extra_argszunrecognized arguments: � )�parserr
�)�args�error�join)rr
�kwargs�func�specs   ���I/opt/imunify360/venv/lib/python3.11/site-packages/restore_infected/cli.py�wrapperzaction.<locals>.wrappersd����t�y�(�(�Z�(��L�L�*�S�X�X�j�-A�-A�A�
�
�
�	
��<�F�z�<�<�V�<�<�<�<�<�)�inspect�getfullargspec)rrrs` @r�actionrs9�����!�$�'�'�D�=�=�=�=�=�=��Nrc����tj|j��}tj|��\}}t|j|���tj|||����\}}tj|||��\}	}
�fd�|	D��x}	r+|�dd�	|	��z��|
r+|�dd�	|
��z��|j|i|��dS)zP
    Convert unparsed arguments to the appropriate format and validate them
    )�env_varsc���g|]}|�v�|��	Sr
r
)�.0�paramrs  �r�
<listcomp>zaction_init.<locals>.<listcomp>6s#���G�G�G�U��h�1F�1F�5�1F�1F�1Frzinit arguments required: rzinit unknown keys: N)
rr�initr�parse_extra_args�#_get_values_for_envvars_init_action�fill_args_from_env�validate_paramsrr)�backendr
r�_r�parsed_args�
parsed_kwargs�	init_args�init_kwargs�missing�unknownrs           @r�action_initr-%s���
�!�'�,�/�/�D�!(�!9�*�!E�!E��K��2�7�<��F�F�H�$�7�����	����I�{��.�t�Y��L�L��G�W�G�G�G�G�g�G�G�G�G�w�F����0�3�8�8�G�3D�3D�D�E�E�E��@����*�S�X�X�g�->�->�>�?�?�?��G�L�)�+�{�+�+�+�+�+rc�H��tj|j����fd�|���D��}|j|fi|��}|rCt�tj�d�|D������dStj
d��dS)Nc�.��i|]\}}|�jv�||��Sr
)�
kwonlyargs)r�k�vrs   �r�
<dictcomp>zaction_list.<locals>.<dictcomp>Gs+���D�D�D�T�Q��q�D�O�/C�/C�A�q�/C�/C�/Crc�,�g|]}t|����Sr
)�str)r�bs  rrzaction_list.<locals>.<listcomp>Ks��$=�$=�$=��S��V�V�$=�$=�$=rzNo backups found)rr�backups�items�logger�info�os�linesepr�sys�exit)r%�untilrrr7rs     @r�action_listr@Ds�����!�'�/�2�2�D�D�D�D�D�V�\�\�^�^�D�D�D�D��g�o�e�,�,�t�,�,�G��%����B�J�O�O�$=�$=�W�$=�$=�$=�>�>�?�?�?�?�?���#�$�$�$�$�$rc��tj|||��\}}|rQt�d��t�tj�|����|rSt�d��t�tj�|����dSdS)NzRestore success:zRestore failed:)r�restore_infectedr9r:r;r<r)r%�filesr?r&�success�faileds      r�action_restorerFPs����.�w��u�E�E�O�G�V��.����&�'�'�'����B�J�O�O�G�,�,�-�-�-�
�-����%�&�&�&����B�J�O�O�F�+�+�,�,�,�,�,�-�-rc�.�|���dS�N)�cleanup)r%r&s  r�action_cleanuprJ]s���O�O�����rc��|���}|r.t�tj|����dSdSrH)r:r9�yaml�	safe_dump)r%r&r:s   r�action_inforNbsC���<�<�>�>�D��*����D�N�4�(�(�)�)�)�)�)�*�*rc���t||d��}t|dd��s(|�d�|����||�}|rt�|��dSdS)N�extraFzinvalid extra action: {0})�getattrr�formatr9r:)r%�extra_actionr
rr&�
extra_func�results       r�action_extrarVis����,��5�5�J��:�w��.�.�G����0�7�7��E�E�F�F�F�
�Z��
$�F�
�����F�������rc�f�|�dd�|j��z��dS)Nz%one of the action must be specified: r)rr�choices)r�
subparsersr&s   r�action_nonerZts9��
�L�L�/�#�(�(�:�;M�2N�2N�N�����rc�2�|�||g���S)N��parents)�
add_parser)�namerY�parents   rr^r^zs��� � ���x� �8�8�8rc�D�tjd���}|�ddddd���|�d	d
ddd
���tj|g���}|�t���|�ddt
jd���||fS)NF)�add_helpz-vz	--verbose�countrzfPrint more messages depending on flag count: v=verbose, vv=verbose with timestamps, vvv=debug messages)r�default�helpz-oz--output�output�PATHzWrite log to specified file)�dest�metavarrer\)rr%�BACKENDzBackup backend to use)ri�typere)�argparse�ArgumentParser�add_argument�set_defaultsrZrr%)r`rs  r�
setup_parsersrp~s���
�
$�e�
4�
4�
4�F�
����k�'�1�2��3�3�3�
����j�x��:��<�<�<�
�
$�f�X�
6�
6�
6�F�
���{��+�+�+�
���	�9�,�4�4��6�6�6��6�>�rc�>�|���}td||��}|�td���td||��}|�td���|�ddddtjd	�
��td||��}|�td���|�d
ddd���|�ddddtjd	�
��td||��}|�td���td||��}|�td���td||��}|�td���|�dd���|S)Nr �Init)r�action_repr�listzGetting backup listz-uz--until�DATEz!Dig backups not earlier this date)rdrirkrer�RestorerC�+�FILEzList files to restore)�nargsrirerI�Cleanupr:�InforPz
Extra actionsrSzExtra action for backend)re)�add_subparsersr^ror-r@rnr�DateTimerFrJrNrV)	rr`rY�parser_init�parser_list�parser_restore�parser_cleanup�parser_info�parser_extras	         r�setup_subparsersr��s����&�&�(�(�J��V�Z��8�8�K����K�V��D�D�D��V�Z��8�8�K����K�)>��@�@�@����T�9�d�F�")�"2�"E��G�G�G� �	�:�v�>�>�N����~�9��M�M�M�����s�F�%<� �>�>�>�����i��v�%,�%5�%H� �J�J�J� �	�:�v�>�>�N����~�9��M�M�M��V�Z��8�8�K����K�V��D�D�D��g�z�6�:�:�L����\���O�O�O����n�3M��N�N�N��rc�l�tj|jj��}|j}|jpi}t
j��}|D]\}d|z}i}||vr(||}	|	|d<t|	t��rd|d<nd|d<|j
|fd|���i|���]|�|��S)Nz--%srdrwryT�requiredri)
rrr%r7r0�kwonlydefaultsrlrm�
isinstance�tuplern�upper�parse_known_args)
�	namespacerr�keys�defaultsr�keyr_�argument_kwrds
          r�list_custom_args_parser��s����!�)�"3�";�<�<�D��?�D��"�(�b�H�
�
$�
&�
&�F��F�F����|�����(�?�?��s�m�G�%,�K�	�"��'�5�)�)�
+�'*��G�$��&*�K�
�#����D�E�E�#�)�)�+�+�E��E�E�E�E��"�"�4�(�(�(rc��|�|���\}}|jtur@t||��\}}t	jdit
|���t
|����}||_||_||_	|S)N�rr
)
r�rr@r�rl�	Namespace�varsr
rrY)rrYrr�r
�list_nss      r�
parse_argsr��s���"�3�3��3�>�>��I�z���;�&�&�4�Y�
�K�K�����&�J�J��i���J�D��M�M�J�J�	�%�I���I��%�I���rc��|s|stj��dStj|��tj|��dSrH)r�log_only_cli_module�log_to_console�log_to_file)�	verbosityrfs  r�enable_logsr��sL����V����!�!�!�����y�!�!�!��O�F�����rc��	|di|��dS#tj$rJ}|jrt�|j��tj|j��Yd}~dSd}~wt$r`}t�d�	|d��t|����tjd��Yd}~dSd}~wwxYw)Nz{} error: %srs�r
)r�ActionError�messager9rr=r>�code�	ExceptionrRr5)rr�es   r�apply_actionr��s��������v�������������9�	$��L�L���#�#�#�������������������������^�*�*�6�-�+@�A�A�3�q�6�6�J�J�J��������������������s!��C
�?A � 
C
�-AC�C
c�V���t|di��}d�|���D����fd�t|j|jrt|j��ndd�|jr|jng��D����fd�|���D��}i��|�S)N�from_envc�4�g|]\}}|tjv�|��Sr
�r;�environ)r�arg�env_names   rrz7_get_values_for_envvars_init_action.<locals>.<listcomp>�s/�������X�X�R�Z�5O�5O��5O�5O�5Orc�$��i|]\}}|�v�	||��
Sr
r
)rr1r2r+s   �rr3z7_get_values_for_envvars_init_action.<locals>.<dictcomp>�s4�������A�q�
��<�<�	
�1�
�<�<rrc�`��i|]*\}}|�v�	|tjv�|tj|��+Sr
r�)rr�r�r�s   �rr3z7_get_values_for_envvars_init_action.<locals>.<dictcomp>sG�������C���h���8�r�z�#9�#9�	�R�Z��
!�#9�#9�#9r)rQr8�ziprr��len)rrr��values_from_envr�r+s    @@rr"r"�s������t�Z��,�,�H���!)���!1�!1����G�
������I�T�]�A�s�4�=�)�)�)�)��B�B�C�!�]�2�D�M�M��
�
����H�&����%�^�^�-�-����O�+�h�*�/�*�*rc�n�|�tjdd�}t��\}}t||��}	t	|||���}n+#t
$r}tj|��Yd}~nd}~wwxYwt|j|j	��t|jit|�����dS)Nr�r�)
r=�argvrpr�r�rr>r��verboserfr�rr�)r�
arg_parser�
parent_parser�subs�ns�errs      r�mainr�s����|��x����|�� -����J�
��J�
�6�6�D��
�
�D�t�
4�
4�
4����$�������
�
�
�
�
�
�
�
�����������
�B�I�&�&�&����L�t�B�x�x�L�)�)�)�)�)s�A�
A4�A/�/A4�__main__rH)$rlr�loggingr;r=rLrBrrrr�$restore_infected.backup_backends_libr�	getLogger�
CLI_LOGGERr9�setLevel�DEBUGrr-r@rFrJrNrVrZr^rpr�r�r�r�r�r"r��__name__r
rr�<module>r�s
��������������	�	�	�	�
�
�
�
�����C�C�C�C�C�C�C�C�C�C�C�C�J�J�J�J�J�J�	��	�3�>�	*�	*������
����
�
�
��,�,���,�<�%�%���%��	-�	-���	-��������*�*���*����������9�9�9����"���@)�)�)�0������	�	�	�$+�$+�$+�N*�*�*�*�"�z����D�F�F�F�F�F��r