ó uÈÔec@sKddlmZmZddlZddlZdeefd„ƒYZdS(iÿÿÿÿ(tPlugint RedHatPluginNt UnpackagedcBseZdZd„ZRS(sR Collects a list of files that are not handled by the package manager c CsÚd„}dd„}d„}|jdtƒs4dSg}td„|jj|jjjƒƒDƒƒ}x!|ƒD]}|||ƒ7}qrWg|D]}||kr“|^q“}||ƒ} |jdj | ƒdƒdS(NcSstjdjdƒS(s3Return a list of directories in $PATH. tPATHt:(tostenvirontsplit(((s:/usr/lib/python2.7/site-packages/sos/plugins/unpackaged.pytget_env_path_listsc SsCg}x6tj|dtƒD]\}}}|rkx7|D],}g|D]}||krE|^qE|(q8Wnx”|D]Œ}tjj||ƒ}yAx:tjtj|ƒjƒrÌtjj tj |ƒƒ}q“WWnt k räqrnX|j tjj |ƒƒqrWx6|D].}|j tjj tjj||ƒƒƒq WqW|S(sÞRetrun 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 ttopdown(RtwalktTruetpathtjointstattS_ISLNKtlstattst_modetabspathtreadlinkt Exceptiontappendtrealpath( R texcludet file_listtroottdirstfilestetdtname((s:/usr/lib/python2.7/site-packages/sos/plugins/unpackaged.pytall_files_systems"% - #  !cSs_g}xR|D]J}tjj|ƒrJ|jdj|tj|ƒƒƒq |j|ƒq W|S(s4Format the unpackaged list as a string. s{} -> {}(RR tislinkRtformatR(Rtexpandedtf((s:/usr/lib/python2.7/site-packages/sos/plugins/unpackaged.pyt format_output7s  %tcmdcss!|]}tjj|ƒVqdS(N(RR R(t.0tx((s:/usr/lib/python2.7/site-packages/sos/plugins/unpackaged.pys Gss t unpackaged( tNonettest_predicateR tsettpolicytmangle_package_pathtpackage_managert all_filestadd_string_as_fileR ( tselfRRR$t all_fsystemtall_frpmRR't not_packagedtnot_packaged_expanded((s:/usr/lib/python2.7/site-packages/sos/plugins/unpackaged.pytsetups     % (t__name__t __module__t__doc__R6(((s:/usr/lib/python2.7/site-packages/sos/plugins/unpackaged.pyRs(t sos.pluginsRRRRR(((s:/usr/lib/python2.7/site-packages/sos/plugins/unpackaged.pyt s