
    vgh,              	       @   d dl mZ  G d d          Zd dlZd dlZd dlZd Z G d d          Zej        dk    r G d	 d
e          Z	 G d de          Z
 G d de          Z G d d          Zd Zd Zg dZdddddddddZd dlZd Zd Z G d d           ZdS )!    )longc                   L    e Zd Zd Zd ZddZd Zd Zd Zd Z	d	 Z
d
 Zd ZdS )abstract_filesystemc                     d S N selfs    V/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/supervisor/medusa/filesys.py__init__zabstract_filesystem.__init__           c                     dS )z3Return a string representing the current directory.Nr   r	   s    r   current_directoryz%abstract_filesystem.current_directory       r   r   c                     dS )zReturn a listing of the directory at 'path' The empty string
        indicates the current directory.  If 'long' is set, instead
        return a list of (name, stat_info) tuples
        Nr   r
   pathr   s      r   listdirzabstract_filesystem.listdir   s	    
 	r   c                     dS )zReturn an open file objectNr   )r
   r   modes      r   openzabstract_filesystem.open"   r   r   c                     dS )z5Return the equivalent of os.stat() on the given path.Nr   r
   r   s     r   statzabstract_filesystem.stat&   r   r   c                     dS )z$Does the path represent a directory?Nr   r   s     r   isdirzabstract_filesystem.isdir*   r   r   c                     dS )z%Does the path represent a plain file?Nr   r   s     r   isfilezabstract_filesystem.isfile.   r   r   c                     dS )zChange the working directory.Nr   r   s     r   cwdzabstract_filesystem.cwd2   r   r   c                     dS )z.Change to the parent of the current directory.Nr   r	   s    r   cdupzabstract_filesystem.cdup6   r   r   c                     dS )z[Return a 'long' representation of the filename
        [for the output of the LIST command]Nr   r   s     r   longifyzabstract_filesystem.longify;   s	     	r   Nr   )__name__
__module____qualname__r   r   r   r   r   r   r   r!   r#   r%   r   r   r   r   r      s                           
    r   r   Nc                 @    	 | t          j        |           fS #  Y d S xY wr   )osr   )r   s    r   	safe_statr,   N   s*    RWd^^##tts    c                       e Zd Zej        ZdZddZd Zd Z	d Z
d Zd Zdd
Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )os_filesystem   /c                 "    || _         || _        d S r   rootwd)r
   r3   r4   s      r   r   zos_filesystem.__init__[   s    	r   c                     | j         S r   )r4   r	   s    r   r   zos_filesystem.current_directory_   s	    wr   c                     |                      | j                            | j        |                    }| j                            |                     |                    S r   )	normalizepath_modulejoinr4   r   	translater
   r   ps      r   r   zos_filesystem.isfileb   sK    NND,1147DAABB&&q(9(9:::r   c                     |                      | j                            | j        |                    }| j                            |                     |                    S r   )r7   r8   r9   r4   r   r:   r;   s      r   r   zos_filesystem.isdirf   sK    NND,1147DAABB%%t~~a'8'8999r   c                    |                      | j                            | j        |                    }|                     |          }| j                            |          sdS t          j                    }d}	 	 t          j        |           d}|| _        n#  Y nxY w|rt          j        |           n# |rt          j        |           w w xY w|S )Nr   r/   )	r7   r8   r9   r4   r:   r   r+   getcwdchdir)r
   r   r<   translated_pathold_dircans         r   r!   zos_filesystem.cwdj   s    NND,1147DAABB..++%%77 	1ikkG C	'Ho...CDGGD 'Hg&&&  'Hg&&&&'Js   <B B8 BB8 8Cc                 ,    |                      d          S )Nz..)r!   r	   s    r   r#   zos_filesystem.cdup   s    xxr   r   c                    |                      |          }t          j        |          }|st          |d           S t          j                    }	 t          j        |           d t          t          |          D             }t          j        |           n# t          j        |           w xY wt          || j                  S )Nc                     g | ]}||S r   r   ).0_fs     r   
<listcomp>z)os_filesystem.listdir.<locals>.<listcomp>   s    AAAbA"AAAr   )	r:   r+   r   list_producerr?   r@   mapr,   r%   )r
   r   r   r<   ldrB   results          r   r   zos_filesystem.listdir   s    NND!! Z^^ 
	8 "d+++ikkG#!AAsIr':':AAA'""""'"""" &$,777s   3B B.c                 T    |                      |          }t          j        |          S r   )r:   r+   r   r;   s      r   r   zos_filesystem.stat   s!    NND!!w{{r   c                 L    |                      |          }t          ||          S r   )r:   r   )r
   r   r   r<   s       r   r   zos_filesystem.open   s!    NND!!Q~~r   c                 T    |                      |          }t          j        |          S r   )r:   r+   unlinkr;   s      r   rQ   zos_filesystem.unlink   s!    NND!!y!}}r   c                 T    |                      |          }t          j        |          S r   )r:   r+   mkdirr;   s      r   rS   zos_filesystem.mkdir   !    NND!!x||r   c                 T    |                      |          }t          j        |          S r   )r:   r+   rmdirr;   s      r   rV   zos_filesystem.rmdir   rT   r   c                 x    t          j        |                     |          |                     |                    S r   )r+   renamer:   )r
   srcdsts      r   rX   zos_filesystem.rename   s,    y,,T^^C-@-@AAAr   c                     t          j        dd|          }| j                            |          }t	          |          dk    r|d d         dk    rd}|S )Nz/+r0         z/..)resubr8   normpathlenr;   s      r   r7   zos_filesystem.normalize   sT    vdC&&%%t,,q66A::!BQB%5..Ar   c                 F   t           j                            |                    d                    }|                     | j                            | j        |                    }|                     | j                            | j        |dd                              }|S )Nr0   r/   )r+   sepr9   splitr7   r8   r4   r3   r;   s      r   r:   zos_filesystem.translate   sz    
 v{{4::c??++NND,1147DAABBNND,1149aeDDEEr   c                 ,    |\  }}t          ||          S r   )unix_longifyr
   path_stat_info_tupler   	stat_infos       r   r%   zos_filesystem.longify   s    0yT9---r   c                 (    d| j         d| j        dS )Nz<unix-style fs root:z wd:>r2   r	   s    r   __repr__zos_filesystem.__repr__   s      			 	r   N)r0   r&   )r'   r(   r)   r+   r   r8   do_globbingr   r   r   r   r!   r#   r   r   r   rQ   rS   rV   rX   r7   r:   r%   rl   r   r   r   r.   r.   T   s.       'K K     ; ; ;: : :  ,  8 8 8 8$          B B B    . . .    r   r.   posixc                       e Zd ZdS )unix_filesystemN)r'   r(   r)   r   r   r   rp   rp      s        r   rp   c                       e Zd Z ej                    Z ej                    Z ej                    Z	 ej
                    ZddZd Zd Zd Zd Zd Zdd
ZdS )schizophrenic_unix_filesystemr0   NNc                 L    t                               | ||           || _        d S r   )r.   r   persona)r
   r3   r4   ru   s       r   r   z&schizophrenic_unix_filesystem.__init__   s%    ""D$333"DLLLr   c                     | j         dk    r4| j         \  }}t          j        |           t          j        |           d S d S Nrs   )ru   r+   setegidseteuid)r
   uidgids      r   become_personaz,schizophrenic_unix_filesystem.become_persona   sH    ||++<S
C   
C     	 ,+r   c                     | j         dk    r4t          j        | j                   t          j        | j                   d S d S rw   )ru   r+   ry   PROCESS_UIDrx   PROCESS_GIDr	   s    r   become_nobodyz+schizophrenic_unix_filesystem.become_nobody   sC    ||++
D,---
D,----- ,+r   c                     	 |                                   t                              | |          |                                  S # |                                  w xY wr   )r|   r.   r!   r   r   s     r   r!   z!schizophrenic_unix_filesystem.cwd   sY    %##%%%$(($55""$$$$""$$$$s   .A Ac                     	 |                                   t                              |           |                                  S # |                                  w xY wr   )r|   r.   r#   r   r	   s    r   r#   z"schizophrenic_unix_filesystem.cdup   sW    %##%%%$))400""$$$$""$$$$s   -A Ac                     	 |                                   t                              | ||          |                                  S # |                                  w xY wr   )r|   r.   r   r   )r
   filenamer   s      r   r   z"schizophrenic_unix_filesystem.open   s[    %##%%%$))44@@""$$$$""$$$$   /A Ar   c                     	 |                                   t                              | ||          |                                  S # |                                  w xY wr   )r|   r.   r   r   r   s      r   r   z%schizophrenic_unix_filesystem.listdir   s[    %##%%%$,,dD$??""$$$$""$$$$r   N)r0   rs   r&   )r'   r(   r)   r+   getuidr~   geteuidPROCESS_EUIDgetgidr   getegidPROCESS_EGIDr   r|   r   r!   r#   r   r   r   r   r   rr   rr      s        #")++$"*,,#")++$"*,,	# 	# 	# 	#	! 	! 	!	. 	. 	.	% 	% 	%	% 	% 	%	% 	% 	%	% 	% 	% 	% 	% 	%r   rr   c                       e Zd Zd ZdS )msdos_filesystemc                 ,    |\  }}t          ||          S r   )msdos_longifyrg   s       r   r%   zmsdos_filesystem.longify  s    0ydI...r   N)r'   r(   r)   r%   r   r   r   r   r     s#        / / / / /r   r   c                       e Zd Zd ZdS )merged_filesystemc                     d S r   r   )r
   fsyss     r   r   zmerged_filesystem.__init__  r   r   N)r'   r(   r)   r   r   r   r   r   r     s#            r   r   c                     t          j        |t           j                           rd}nd}t          |t           j                           }d|||t           j                 | fz  S )Nz<DIR>z     z%s       %s %8d %s)r   S_ISDIRST_MODE
msdos_dateST_MTIMEST_SIZE)fileri   dirdates       r   r   r     s`    |Yt|,-- y/00Ddl#	#  r   c                     	 t          j        |           }n#  t          j        d          }Y nxY w|d         }|dk    rd}|dz  }nd}d|d         |d	         |d         d
z  ||d         |fz  S )Nr   r]      PM   AMz%02d-%02d-%02d  %02d:%02d%sr/   r\   d      )timegmtime)tinfohourmerids       r   r   r   '  s    {A{A7Dbyy
(GGGCKG,      /)JanFebMarAprMayJunJulAugSepOctNovDecz---z--xz-w-z-wxzr--zr-xzrw-rwx)01234567c           	         d|t           j                 z  dd          }d                    d |D                       }t          j        |t           j                           rd}nd}t	          t          t          j                              |t           j                           }d|||t           j                 |t           j	                 |t           j
                 |t           j                 || fz  S )Nz%o c                 (    g | ]}t           |         S r   )
mode_table)rG   xs     r   rI   z unix_longify.<locals>.<listcomp>O  s    000aJqM000r   d-z%s%s %3d %-8d %-8d %8d %s %s)r   r   r9   r   ls_dater   r   r   ST_NLINKST_UIDST_GIDr   )r   ri   r   dircharr   s        r   rf   rf   L  s    9T\**BCC0D7700400011D|Yt|,-- D%%y'?@@D)dm$dk"dk"dl#	- 	 	r   c                 $   	 t          j        |          }n#  t          j        d          }Y nxY w| |z
  dk    r(dt          |d         dz
           |d         |d         fz  S dt          |d         dz
           |d         |d         |d         fz  S )	Nr   i	 z
%s %2d  %dr/   r\   z%s %2d %02d:%02dr]   r   )r   r   months)nowr   r   s      r   r   r   g  s    {A{Aa8tAwqy!QQ  	 "tAwqy!QQQ	%  	r   c                       e Zd ZddZd ZdS )rJ   Nc                 "    || _         || _        d S r   )listfunc)r
   r   r   s      r   r   zlist_producer.__init__  s    				r   c                     | j         sdS | j         d d         }| j        t          | j        |          }| j         dd          | _         d                    |          dz   S )Nr   2   z
)r   r   rK   r9   )r
   bunchs     r   morezlist_producer.more  sc    y 	/2 IcrcNEy$TY..	"##DI;;u%%..r   r   )r'   r(   r)   r   r   r   r   r   rJ   rJ     s7           
	/ 	/ 	/ 	/ 	/r   rJ   )supervisor.compatr   r   r+   r   r^   r,   r.   namerp   rr   r   r   r   r   r   r   r   rf   r   rJ   r   r   r   <module>r      s  " # " " " " "+ + + + + + + +n 
			  				  t t t t t t t tl 7g    =   1% 1% 1% 1% 1% 1% 1% 1%n/ / / / / / / /           *
< 
< 
< 	
 	

   6  0/ / / / / / / / / /r   