
    Pi	                    T    d Z ddlmZ ddlmZmZ dgZddddd	d
ZddZddZ	ddZ
dS )z
Tar command handler for Dippy.

Tar can list, create, or extract archives.
Only listing (-t/--list) is safe.
--to-command delegates to inner command check.
    )annotations)ClassificationHandlerContexttarcreateextractappendupdatelist)cxruttokens	list[str]return
str | Nonec                   | dd         D ]}|dk    r dS |dk    s|dk    r dS |dk    r d	S |d
k    r dS |dk    r dS |dk    r dS |                     d          r>|                     d          s)t                                          D ]\  }}||v r|c c S t          |           dk    rD| d         }|                     d          s't                                          D ]\  }}||v r|c S dS )z.Detect which tar operation is being performed.   Nz--creater   z	--extractz--getr   z--appendr	   z--updater
   z--listr   z--deletedelete-z--)
startswith
OPERATIONSitemslen)r   r   charop	first_args        ./root/projects/gits/Dippy/src/dippy/cli/tar.py_detect_operationr!      sR   ABBZ  
??88qG||99
??88
??88==66
??88<< 	Q\\$%7%7 	&,,..  b199IIIII  6{{Q1I	##C(( 	&,,..  b9$$III %4    c                    t          | dd         d          D ]O\  }}|                    d          r|dd         c S |dk    r#|dz   t          |           k     r| |dz            c S PdS )z+Extract the command from --to-command flag.r   N)startz--to-command=   z--to-command)	enumerater   r   )r   ir   s      r    _extract_to_commandr(   8   s    &*A... ! !1<<(( 	RSS6MMM1q53v;;#6#6!a%=   4r"   ctxr   r   c                   | j         }|r|d         nd}t          |          }|rt          d|| d          S t          |          }|dk    rt          d| d	          S |rt          d
| d| 	          S t          d
|	          S )z.Classify tar command (list mode only is safe).r   r   delegatez --to-command)inner_commanddescriptionr   allowz list)r-   ask )r   r(   r   r!   )r)   r   base
to_command	operations        r    classifyr4   B   s    ZF)6!99ED %V,,J 
$...
 
 
 	
 "&))IFgd>>>BBBB HeD1F1F91F1FGGGG%T2222r"   N)r   r   r   r   )r)   r   r   r   )__doc__
__future__r   	dippy.clir   r   COMMANDSr   r!   r(   r4    r"   r    <module>r:      s     # " " " " " 4 4 4 4 4 4 4 47 
				 
   >   3 3 3 3 3 3r"   