
    y9>i%                        d Z ddlZddlZddlmZmZmZmZmZm	Z	m
Z
mZ ddlmZ ddlmZmZ ddlmZ dej        d	efd
Zdej        d	efdZdej        d	efdZdej        d	efdZdej        d	efdZdej        d	efdZdej        d	efdZdej        d	efdZdej        d	efdZdZde dZd	ej         fdZ!dd	efdZ"d Z#dS )zCommand line usage:
patool
   [global-options]
   {extract|list|create|repack|diff|search|formats}
   [sub-command-options]
   <command-args>
    N   )extract_archivelist_archivetest_archivecreate_archivediff_archivessearch_archiverepack_archivelist_formats)PatoolError)	log_errorlog_internal_error)Appargsreturnc                     d}| j         D ]\}	 t          || j        | j        | j        | j                   ,# t          $ r$}t          d| d|            |dz  }Y d}~Ud}~ww xY w|S )zExtract files from archive(s).r   )	verbosityinteractiveoutdirpasswordzerror extracting : r   N)archiver   r   r   r   r   r   r   r   resr   msgs       L/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/patoolib/cli.pyrun_extractr   )   s    
C<  
	. ,{      	 	 	:'::S::;;;1HCCCCCC	 Js   (6
A$ AA$c                     d}| j         D ]`}	 | j        }|dk    rd}t          ||| j        | j                   0# t
          $ r$}t          d| d|            |dz  }Y d}~Yd}~ww xY w|S )zList files in archive(s).r   r   r   r   r   zerror listing r   N)r   r   r   r   r   r   r   )r   r   r   r   r   s        r   run_listr    ;   s    
C<  	IA~~	# ,	      	 	 	7w77#778881HCCCCCC	 Js   ,:
A(A##A(c                     d}| j         D ]V}	 t          || j        | j        | j                   &# t
          $ r$}t          d| d|            |dz  }Y d}~Od}~ww xY w|S )zTest files in archive(s).r   r   zerror testing r   r   N)r   r   r   r   r   r   r   r   s       r   run_testr"   P   s    
C< 
 
		. ,	      	 	 	7w77#778881HCCCCCC	 Js   "0
AAAc                     d}	 t          | j        | j        | j        | j        | j                   n3# t          $ r&}t          d| j         d|            d}Y d}~nd}~ww xY w|S )z#Create an archive from given files.r   r   zerror creating r   r   N)r   r   filenamer   r   r   r   r   r   r   r   s      r   
run_creater&   a   s    
C
LMn(]	
 	
 	
 	
 	
    9DL99C99::: Js   -2 
A"AA"c           	          	 t          | j        | j        | j        | j                  }n;# t
          $ r.}t          d| j         d| j         d|            d}Y d}~nd}~ww xY w|S )z&Show differences between two archives.r   r   z"error showing differences between z and r      N)r   archive1archive2r   r   r   r   r%   s      r   run_diffr,   r   s    MMn(	
 
 
    [[[T][[VY[[	
 	
 	
 	
 Js   '* 
A"$AA"c                     	 t          | j        | j        | j        | j        | j                  }n3# t          $ r&}t          d| j         d|            d}Y d}~nd}~ww xY w|S )z$Search for pattern in given archive.r   zerror searching r   r)   N)r	   patternr   r   r   r   r   r   r%   s      r   
run_searchr/      s    
LLn(]
 
 
    :T\::S::;;; Js   -0 
A AA c                     d}	 t          | j        | j        | j        | j                   n3# t
          $ r&}t          d| j         d|            d}Y d}~nd}~ww xY w|S )z(Repackage one archive in another format.r   r(   zerror repacking r   r   N)r
   archive_srcarchive_dstr   r   r   r   r%   s      r   
run_repackr3      s    
C	n(		
 	
 	
 	
 	
    >T%5>>>>??? Js   ', 
AAAc                 "    t                       dS )z-List supported and available archive formats.r   )r   r   s    r   run_formatsr6      s    NNN1    c                 .    t          t                     dS )zPrint version number.r   )printr   r5   s    r   run_versionr:      s    	#JJJ1r7   aB  EXAMPLES
  patool extract archive.zip otherarchive.rar
  patool --verbose test dist.tar.gz
  patool list package.deb
  patool --verbose create myfiles.zip file1.txt dir/
  patool diff release1.0.tar.xz release2.0.zip
  patool search "def urlopen" python-3.3.tar.gz
  patool repack linux-2.6.33.tar.gz linux-2.6.33.tar.bz2
z
VERSION
  
c                  n   t           dz   t          z   } t          j        d| t          j                  }|                                }|                    dddddd	
           |                    dddddd
           |                    ddddd           |                    ddd          }|                    dd          }|                    dd           |                    dd           |                    dd d!"           |                    d#d$          }|                    dd           |                    dd d!"           |                    d%d&          }|                    dd'           |                    dd(           |                    d)d d*"           |                    d+d,          }|                    dd           |                    dd d!"           |                    d-d.          }|                    d/d0           |                    d1d2           |                    d3d4          }	|	                    d5d6           |	                    d7d8           |                    d9d:          }
|
                    dd           |
                    d;d<           |
                    dd=           |                    d>d?           |                    d@dA           	 ddBl	}|
                    |           n# t          $ r Y nw xY w|S )Cz(Construct and return an argument parser.r;   zAn archive file manager.)descriptionepilogformatter_classz	--verbosez-vcountr   r   z.verbose operation; can be given multiple times)actiondefaultdesthelpz--quietz-qquietzMquiet operation; if given twice suppresses error output from archive commandsz--non-interactiver   Tstore_falsezdon't query for user input (i.e. passwords or when overwriting duplicate files); use with care since overwriting files or ignoring passwords could be unintended)rC   rB   rA   rD   zGthe archive command; type "patool COMMAND -h" for command-specific helpcommand)rD   rC   requiredextractzextract one or more archives)rD   z--outdirzoutput directory to extract toz
--passwordzpassword for encrypted filesr   +zan archive file)nargsrD   listz$list members or one or more archivescreatezcreate an archivezpassword to encrypt fileszCthe archive file; the file extension determines the archive programr$   zea file or directory to add to the archive; note that some archive programs do not support directoriestestztest an archiverepackz'repack an archive to a different formatr1   zsource archive filer2   ztarget archive filediffz%show differences between two archivesr*   zthe first archive filer+   zthe second archive filesearchz"search contents of archive membersr.   z%the grep(1) compatible search patternzthe archive fileformatszshow supported archive formatsversionzprint version informationN)ExamplesVersionargparseArgumentParserRawDescriptionHelpFormatteradd_mutually_exclusive_groupadd_argumentadd_subparsers
add_parserargcompleteautocompleteImportError)r>   parsergroup
subparsersparser_extractparser_listparser_createparser_testparser_repackparser_diffparser_searchr]   s               r   create_argparserrj      s4   _w&F$. <  F
 //11E	=     
\      p     &&V '  J  **6 +  N 
1QRRR3QRRR	;LMMM''; (  K \0NOOOYc8IJJJ))(9L)MMM|2MNNNR     t     ''5F'GGK\0NOOOYc8IJJJ))@ *  M }3HIII}3HIII''< (  K Z.FGGGZ.GHHH)); *  M |2PQQQy/VWWWy/ABBB)*JKKK)*EFFF  ((((   Ms   L% %
L21L2c                 @   d}	 t                      }|                    |           }|j        r|j         |_         t	                      d|j                  |          }n<# t          $ r t          d           d}Y nt          $ r t                       d}Y nw xY w|S )z#Parse options and execute commands.r   r5   run_abortedr   r)   )
rj   
parse_argsrE   r   globalsrG   KeyboardInterruptr   	Exceptionr   )r   r   	argparserpargss       r   mainrt   #  s    
C$&&	$$$$//; 	+${lEO/gii.u}../66   )    Js   AA" "B?BBc                  F    t          j        t                                 dS )zRun main() function.N)sysexitrt    r7   r   main_cliry   6  s    HTVVr7   )N)$__doc__rv   rV    r   r   r   r   r   r	   r
   r   utilr   logr   r   configurationr   	Namespaceintr   r    r"   r&   r,   r/   r3   r6   r:   rT   rU   rW   rj   rt   ry   rx   r7   r   <module>r      s     


 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	       . . . . . . . .      h( S    $8% #    *8% #    "X' C    "8% #    "X' C     X' C     h( S    h( S    	  `(1 ` ` ` `F s    &    r7   