
    nj!                     ~   S SK r S SKrS SKrS SKJr  S rS rS rSS jr SS jr	S r
\R                  4S	 jr\R                  4S
 jr\S:X  an  \" \R"                  " S5      5      r\S:  a-  \R&                  R)                  S5        \R*                  " S5        \R*                  " \" \R                  5      5        gg)    N)gdalc                     U R                  S5      =(       d)    U R                  S5      =(       d    U R                  S5      $ )Nzhttp://zhttps://zftp://)
startswithfilenames    W/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/osgeo_utils/samples/gdal_ls.pyneedsVSICurlr	   '   s;    I& 	)z*	)x(    c                 T    U R                  S5      =(       d    U R                  S5      $ )Nz.zipz.ZIPendswithr   s    r   iszipr   /   s#    V$A(9(9&(AAr
   c                     U R                  S5      =(       dA    U R                  S5      =(       d)    U R                  S5      =(       d    U R                  S5      $ )Nz.tgzz.TGZz.tar.gzz.TAR.GZr   r   s    r   istgzr   3   sP    &! 	(V$	(Y'	( Y'	r
   c           	         S nX#-   nUR                  S5      (       a  UnOUS-   n[        [        R                  " S5      5      n	U(       aP  U	S:  aI  [        R                  " X-   [        R
                  [        R                  -  [        R                  -  5      nO>U	S:  a8  [        R                  " X-   [        R
                  [        R                  -  5      nUcg  U(       a`  U	S:  a  S n
O[        R                  " X-   S5      n
U
c%  [        R                  R                  SX-   -  5        g [        R                  " U
5        Ub0  UR                  5       (       a  UR                  S5      (       d  US-   nU(       a  Ub  SS KnUR                  UR                   5      n["        R$                  " UR&                  5      S:w  a!  ["        R(                  " UR&                  5      nOUR                  5       (       a  SnOSnS	UUR*                  UR,                  UR.                  UR0                  UR2                  UR4                  U4-  nOUS
-   nU R                  U5        g )N/VERSION_NUMil  rbCannot open %s
r   z
dr-xr-xr-xz
-r--r--r--z7%s  1 unknown unknown %12d %04d-%02d-%02d %02d:%02d %s

)r   intr   VersionInfoVSIStatLVSI_STAT_EXISTS_FLAGVSI_STAT_NATURE_FLAGVSI_STAT_SIZE_FLAG	VSIFOpenLsysstderrwrite
VSIFCloseLIsDirectorytimegmtimemtimestatS_IMODEmodefilemodesizetm_yeartm_montm_mdaytm_hourtm_min)foutdirnameprefixr   
longformat
check_openstatBuffilename_displayeddirname_with_slashversion_numfr#   bdtpermissionslines                  r   display_filer=   <   s   G*$$s]d&&}56K$mm"-))++,))*G $mm"-))D,E,EEG
 :$A1<dCA9JJ/3E3PQR 	!!"++C00/#5g)kk'--(<<%*--5K  ""&K&KILLKKJJKKKKJJ	M
 	
 "D(JJtr
   c	                 *   US::  a  g [        U5      (       a
  SU-   nSU-   nU(       a0  [        U5      (       a   UR                  S5      (       d
  SU-   nSU-   nU(       a0  [        U5      (       a   UR                  S5      (       d
  SU-   nSU-   n[        R
                  " U5      n	U	c  U(       a|  Un
[        R                  R                  U5      u  p[        R
                  " U5      c#  [        R                  R                  SU
-  5        g US:X  a  S	nSnOUS
-   n[        XX+US5        g g U	 Ha  nUS	:X  d  US:X  a  M  [        XX+U5        U(       d  M'  X+-   nUR                  S
5      (       d  US
-  n[        U US
-   U-   UUUUS-
  UU5        Mc     g )Nr   	/vsicurl/z/vsizipz/vsizip/z/vsitarz/vsitar/r    .r   Tz..   )r	   r   r   r   r   ReadDirospathsplitr   r   r    r=   r   readDir)r0   r1   r2   r3   recursedepthrecurseInZiprecurseInTGZfirstlstoriginal_dirnamer   
new_prefixs                r   rG   rG      s    zG'v%gw/A/A)/L/Lw&f$gw/A/A)/L/Lw&f$
,,w
C
{&"$''--"8W||G$,

  !36F!FG"} 3*dK  H3(d"2*Ew#.
!**3//#%JcMH,AI  	 r
   c                      [        S5        [        S5        [        S5        [        S5        [        S5        [        S5        [        S5        [        S5        [        S5        [        S	5        g
)NzMUsage: gdal_ls [-l] [-r] [-depth d] [-Rzip] [-Rtgz] name_of_virtual_directoryr@   zJDisplay the list of files in a virtual directory, like /vsicurl or /vsizipz	Options :z/ -l : use a long listing format (same as ls -l)z% -r : list subdirectories recursivelyz! -depth d : recurse until depth dz& -Rzip : list content of .zip archiveszN -Rtgz : list content of .tar.gz/.tgz archives (potentially slow on /vsicurl/)   )print r
   r   UsagerT      sb    	W 
"I	
VW	"I	+	
;<	
12	
-.	
23	X r
   c                     SnSnSnSnSnS nSn[         R                  " U 5      n U c  gSn	[        U 5      n
X:  a  X	   S:X  a  SnOX	   S:X  a  SnSnOX	   S:X  d  X	   S	:X  a  SnOX	   S
:X  a  SnOX	   S:X  a  SnOX	   S:X  a  SnOX	   S:X  a(  U	[        U 5      S-
  :  a  [        X	S-      5      nU	S-   n	OoX	   S   S:X  a.  [        R
                  R                  SX	   -  5        [        5       $ Uc  X	   nO.[        R
                  R                  SX	   -  5        [        5       $ U	S-   n	X:  a  M  Uc
  [        5       $ US   S:X  a  US[        U5      S-
   n[        U5      (       a  SU-   nSnU(       a  US-   n[        UUUUUUUUS5	        g)NFTi   rB   z-lz-lrz-Rz-rz-Rzipz-Rtgzz	-noprefixz-depthr   -zUnrecognized option : %s
zUnexpected option : %s
r   r?   r@   )
r   GeneralCmdLineProcessorlenr   r   r   r    rT   r	   rG   )argvr0   r3   rH   rJ   rK   display_prefixr1   rI   iargcr2   s               r   gdal_lsr^      s   JGLLNGE''-D|	At9D
(7d?JWJGW_4GWLWLW#"NW QTQ%6U$EAAWQZ3JJ9DGCD7N_gGJJ7$'AB7NE5 (8 w r{c!c'lQ./G' F3
 r
   c                     [        U 5      $ )N)r^   )rZ   s    r   mainr`     s    4=r
   __main__r   i  z7ERROR: Python bindings of GDAL 1.8.0 or later required
rB   )F)rD   r&   r   osgeor   r	   r   r   r=   rG   rT   stdoutr^   rZ   r`   __name__r   r   r8   r   r    exitrS   r
   r   <module>rf      s   @ 
  
 BB\ =@$ zz IX hh  zd&&}56KT

STHHT#((^ r
   