mò P´ÞIc@szdkZdkZdkZdkZdkZd„Zd„Zd„Zd„Zd„Z dfd„ƒYZ d„Z dS( NcCs>ti}tid|titiBƒoktƒ\}}|djo|||ddg}q:|djo||ddg}q:|ddg}n§|djo dg}n|djo3t ƒ}|o|ddg}q:ddg}nM|djo3t ƒ}|o||dg}q:|dg}n |dg}|S( Ntlinuxttunixtaix4tAIX4taix5tAIX5tdarwin(tsystplatformt base_platformtretmatcht IGNORECASEtDOTALLtfindLinuxVersiontfull_linux_versiont linux_versiont platformstfindAIXVersiontfull_aix_versiontfindDarwinVersiontdarwin_version(RRRRRR ((tf/home/faculty/youssef/public_html/pacman/sample_cache/tarballs/pre/tmp/pacman-3.29/src/PlatformBase.pyt findPlatforms,           cCsúd}yætiidƒo d}n^tiidƒo d}nAtiidƒo d}n$tiidƒo d}nd}t|dƒ}|iƒ}|i ƒdk }|i |ƒ\}}|iƒdjp|d |}nWnnX|S( Nt*s/etc/rocks-releases/etc/redhat-releases/etc/SuSE-releases/etc/gentoo-releases /etc/issuetrRt-(R tostpathtexistst issue_filetopentftreadttexttclosetetc_issue_parsertparsetOStversiontstrip(R'RR!R#R R(R%((Rt findLinux0s&    % cCs¨yˆtiidƒo d}nAtiidƒo d}n$tiidƒo d}nd}t|dƒ}|iƒ}d.}x|D]û}d}t i d|ƒo d}nÇt i d |ƒo d }nªt i d |ƒo d }nt i d |ƒo d}npt idt iƒi |ƒo d}nGt i d|ƒo d}n*t i d|ƒo d}n t i d|ƒo d}nðt i d|ƒo d}nÓt i d|ƒo d}n¶t i d|ƒo d}n™t idt iƒi |ƒod}t idd |ƒ}n[|id!ƒd"jo d#}n;t i d$|ƒo d%}nt i d&|ƒo d'}n|djoÿt i d(|ƒ}|o||iƒ|iƒ!}|djo9tti|d)ƒƒd*joti|d)ƒd*}nd+|d,|d+|f}nct i d-|ƒ}|o9||iƒ|iƒ!}d+|d,|d+|f}ndd+|f}PqˆqˆWWntj o d/}nX|S(0Ns/etc/rocks-releases/etc/redhat-releases/etc/SuSE-releases /etc/issueRRsRed Hat Enterprise*trhelsRed Hat*tredhattTaottaotMandraketmandraketSuSEtsusetDebiantdebiantFedoratfedorasScientific Linux SLtslsScientific Linux CERNssl-cernsScientific Linux IFICssl-ificsBU LinuxtBUs*Scientific Linux Release [\d\.]+ \(Fermi\)ssl-fermis (\d)(\d)(\d)s\1.\2.\3sCentOS releaseitcentostFermitfermitRockstrockss\d+\.\d+t islinux-Rs\d+(RR(RR(RRRtissue_filenameR Rt readlinestlinestversionstlinetNonetdistroR tsearchtcompileR tsubtcountt version_matchtstarttendtversion_stringtlentstringtsplittIOError(RRBRJRARMR?RCRE((RREsz                  ,    cCszyZtitidƒiƒdƒ}titidƒiƒdƒ}d|d|}Wntj o d}nX|S(Nsuname -visuname -rtAIXt.( ROtrstripRtpopenR@R(treleaseRBRQRD(RBR(RV((RR£s"" cCsŒyltitidƒiƒdƒ}tid|ƒ}|o'||i ƒ|i ƒ!}d|}nd}Wntj o d}nX|S(Nssw_vers -productVersionis\d+\.\d+sMacOS-(RORTRRUR@RVR RFRJRKRLR(RBRDRQ(RBRJR(RV((RR®s"  t PlatformscBs#tZd„Zd„Zd„ZRS(NcCs ||_dS(N(t dictionarytself(RYRX((Rt__init__ÃscCsdd}t|tiƒo:xD|D]+}|ii |ƒo|i|}Pq q Wn|i|}|S(N( RDtvaluet isinstancetindexttypestListTypetiRYRXthas_key(RYR]R`R[((Rt __getitem__Ås   cCsbd}t|tiƒo3xB|D]$}|ii|ƒo d}Pq q Wn|ii|ƒ}|S(Nii( t key_existsR\R]R^R_R`RYRXRa(RYR]R`Rc((RRaÏs (t__name__t __module__RZRbRa(((RRWÂs  cCsÛdGtƒGHthdddg<dddg<ƒ}dG|dGHd G|dGHd G|ddgGHd G|ddgGHd G|gGHd G|idƒGHdG|idƒGHdG|iddgƒGHdG|iddgƒGHdS(NsYou are running: s linux-i386sgpt-0.2.tar.gzsgpt-0.2tlinux2sgpt-0.3.tar.gzsgpt-0.3s linux2 is: slinux-i386 is: s['linux-i386', 'linux2']: s['linux2', 'linux-i386']: s[]: s Has linux2: sHas linux-i386: sHas ['linux-i386', 'linux2']: sHas ['linux2', 'linux-i386']: (RRWRRa(R((Rt testPlatformÜs *   ( RR R^RRORR*RRRRWRg( R*RRORWRRR RRgRRR^((Rt?s       ^