Ë
    i©¹d²  ã                   óH   — d dl mZmZ d dlZd dlZd dlmZ  G d„ dee«      Zy)é    )ÚPluginÚRedHatPluginN)ÚPathc                   ó   — e Zd ZdZdZd„ Zy)Ú
UnpackagedzDCollects a list of files that are not handled by the package managerÚ
unpackagedc                 óø  ‡ ‡— d„ }d	ˆ fd„	}ˆ fd„}‰ j                  d¬«      sy ‰ j                  d«      5 } |«       Šg }t        ˆfd„‰ j                  j	                  ‰ j                  j
                  j                  «       «      D «       «      }‰D ]  }| ||«      z  }Œ |D ��	cg c]  \  }}	|	|vsŒ|‘Œ }
}}	 ||
«      }|j                  dj                  |«      «       d d d «       y c c}	}w # 1 sw Y   y xY w)
Nc                  óF   — t         j                  d   j                  d«      S )z3Return a list of directories in $PATH.
            ÚPATHú:)ÚosÚenvironÚsplit© ó    ú?/usr/lib/python3/dist-packages/sos/report/plugins/unpackaged.pyÚget_env_path_listz-Unpackaged.collect.<locals>.get_env_path_list   s   € ô —:‘:˜fÑ%×+Ñ+¨CÓ0Ð0r   c                 ó˜  •— g }t        j                  | d¬«      D �]  \  }}}|r|D ]  }|D �cg c]	  }||vsŒ|‘Œ c}|dd Œ |D ]   }‰	j                  ||«      } 	 t        j                  t        j
                  | «      j                  «      rt        | «      j                  «       } |j                  ‰	j                  ||«      t         j                  j                  | «      g«       Œ¢ |D ]D  }‰	j                  ||«      }|j                  |t         j                  j                  |«      g«       ŒF �Œ |S c c}w # t        $ r Y �Œw xY w)zÞReturn a list of all files present on the system, excluding
                any directories listed in `exclude`.

            :param path: the starting path
            :param exclude: list of paths to exclude
            T)ÚtopdownN)r   ÚwalkÚ	path_joinÚstatÚS_ISLNKÚlstatÚst_moder   ÚresolveÚ	ExceptionÚappendÚpathÚrealpath)
r   ÚexcludeÚ	file_listÚrootÚdirsÚfilesÚeÚdÚnameÚselfs
            €r   Úall_files_systemz,Unpackaged.collect.<locals>.all_files_system   sD  ø€ ð ˆIä%'§W¡W¨T¸4Ô%@ó EÑ!��d˜EÙØ$ò B˜Ø.2Ö"A¨°a¸q²j¢1Ò"A˜™Q™ðBà!ò 	�DØŸ>™>¨$°Ó5�Dð!ÜŸ<™<¬¯©°«×(>Ñ(>Ô?Ü#'¨£:×#5Ñ#5Ó#7˜Dð ×$Ñ$ØŸ™¨¨dÓ3´R·W±W×5EÑ5EÀdÓ5KÐLõð	ð !ò E�DØŸ>™>¨$°Ó5�DØ×$Ñ$ d¬B¯G©G×,<Ñ,<¸TÓ,BÐ%CÕDòEðEð$ Ðùò #Bøô %ò !Ú ð!ús   ®	D7¸D7ÁAD<Ä<	E	ÅE	c                 ó  •— g }| D ]{  }‰j                  |«      }|› }d}‰j                  |«      r>|dk  r9t        j                  |«      }|d|› �z  }|dz  }‰j                  |«      r|dk  rŒ9|j	                  |dz   «       Œ} |S )z4Format the unpackaged list as a string.
            r   é
   z -> é   ú
)r   Úpath_islinkr   Úreadlinkr   )r%   ÚexpandedÚfÚfpÚoutÚlinksr)   s         €r   Úformat_outputz)Unpackaged.collect.<locals>.format_output:   sž   ø€ ð ˆHØò ,�Ø—^‘^ AÓ&�Ø˜�Ø�ð
 ×&Ñ& rÔ*¨u°rªzÜŸ™ R›�BØ˜T " ˜;Ñ&�CØ˜Q‘J�Eð ×&Ñ& rÔ*¨u°r«zð —‘  d¡
Õ+ð,ð ˆOr   T)Úcmdr   c           	   3   ó¶   •K  — | ]K  }t        ‰D �cg c]  }|j                  |«      ‘Œ c}«      r!t        j                  j	                  |«      –— ŒM y c c}w ­w©N)ÚanyÚ
startswithr   r   r    )Ú.0ÚxÚpÚpathss      €r   ú	<genexpr>z%Unpackaged.collect.<locals>.<genexpr>T   sH   øè ø€ ò Ø()ä°5Ö9¨a˜!Ÿ,™, q�/Ò9Ô:ô —‘× Ñ  ×#ñùò :ùs   ƒA‘A
©0AÚ r9   )	Útest_predicateÚcollection_fileÚsetÚpolicyÚmangle_package_pathÚpackage_managerÚ	all_filesÚwriteÚjoin)r)   r   r*   r6   ÚufileÚall_fsystemÚall_frpmr'   r=   ÚrpÚnot_packagedÚnot_packaged_expandedr?   s   `           @r   ÚcollectzUnpackaged.collect   s  ù€ ò	1õ
	ô:	ð( ×"Ñ" tÐ"Ô,Øà×!Ñ! ,Ó/ð 	8°5Ù%Ó'ˆEØˆKÜó Ø-1¯[©[×-LÑ-LØ—K‘K×/Ñ/×9Ñ9Ó;ó.ôó ˆHð ò 3�ØÑ/°Ó2Ñ2‘ð3à-8×O¡' 1 b¸BÀhÒ<NšAÐOˆLÑOÙ$1°,Ó$?Ð!à�K‰K˜Ÿ™Ð 5Ó6Ô7÷	8ð 	8ùó P÷	8ð 	8ús$   µA0C0Â%C*Â2C*Â6+C0Ã*C0Ã0C9N)Ú__name__Ú
__module__Ú__qualname__Ú
short_descÚplugin_namerQ   r   r   r   r   r      s   „ ð$€Jà€KóI8r   r   )Úsos.report.pluginsr   r   r   r   Úpathlibr   r   r   r   r   ú<module>rY      s#   ð÷ 4ã 	Û Ý ôO8�˜õ O8r   