mò © Hc@sÆdkTdkZdkZdkZdkZdkZdkZdkZdkZdk Z dk Z dk Z dk Z dk Z dkZdkZdZd„ZhZhZdeifd„ƒYZdS((t*Nt!cCsXtdƒo d}n%tdƒp tdƒo d}nt|ƒdjotdƒ}n÷t|ƒdjotd ƒ}nÔttd ƒƒdjotd ƒd}n5ttd ƒƒdjotd ƒd}n|}t |dƒp||}ntd |d t i i |ƒƒ}|i ƒo$tid|ƒ|d}t|ƒdjo!|d djot|ƒ}nt|jo tdtd|dƒ}n:td||ƒ}|djo d|_n|iƒ}|i ƒotid|d|ƒ}n|GHt i i d|ƒo#tdƒ otid|ƒqTn|S(Ntmirrors.mirrortsnaptsnapshots .snapshotisNo mirror specified.is(You can only mirror one cache at a time.totoutsFile [s] already exists.srm -r -f zzztmpis..s'Can't mirror or snapshot a cache with [s] in it's name [s].tzzztmps mv zzztmpt tdebug(tswitchtsuffixtlentclisttReasontrt switchItemst mirrorfile2t mirrorfilettailtostpathtexiststokt ExecutiontexecutetcachetfullpathtESCt MirrorCacheRt _snapshottcreate(R RRRRRR ((te/home/faculty/youssef/public_html/pacman/sample_cache/tarballs/pre/tmp/pacman-3.29/src/MirrorCache.pyt mirrorCreate sB  #  $     %RcBsÚtZdd„Zd„Zdd„Zd„Zd„Zd„Zd „Zd „Z d „Z d „Z dd „Z d„Z d„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zdd„Zd„ZRS(NtcCsbd|_ti|ƒ|_|i |_d|_d|_|iiidjo|i |_n||_ d|_ t i ƒ|_ ti|i ƒ|_ti|i ƒ|_tƒ|_t|_tiƒ|_tiiddƒ|_tiƒiƒ|_ti |_!|iiidjo|i |_ng|_"d|_$d|_%d|_&d|_'dS(NRiR"slocal directorys i((tselfttypetUniversalAccessRt_accesstUCLt_initt _locationtaccessorRt_mirrorRttimet _createTimetcopytdeepcopyt _checkTimet _updateTimet getusernamet_creatortversiont_pacmanVersiontsockett gethostnamet _hostnametsystreplacet_pythonVersiontPlatformtstrt _platformtRegistrytregistryt _registryt_namestNonet _newcachet_cachet_leaft_top(R#RR((R t__init__*s2             cCs&t|dƒo |iSn|iSdS(Nt_name(thasattrR#RIR'(R#((R R=Es icCs±|iotdƒp tdƒ}|iƒ}|iƒp|d| GHn`|i ƒo”|iov|i o.|d|i ƒdt i i|iƒGHn+|d|i ƒdt i i|iƒGH|ii|ƒq |ii|ƒn²|iof|i o.|d|i ƒdt i i|iƒGHq{|d|i ƒdt i i|iƒGHn|dt i i|iƒGHx"|iD]}|i|dƒq…W|o|i o$|ddt i i|iƒGHn!|ddt i i|iƒGH|dd|iGH|dd |iGH|dd |iGH|dd |iGH|dd |iGH|dd ti|iƒGH|ddti|iƒGH|i p!|ddti|iƒGHqÂntdƒp tdƒo¹t|i dƒo¢|ddt i i|iƒdGH|dddGHx)|iD]}|ddd|i!GHq.W|dddGHx-|i D]}|ddd|i!GHqkWq•n|io|i o|i"ƒ}t$|ƒdjoJ|ddt i i|iƒdGHx#|D]}|i|dƒqôWn|i&ƒ}t$|ƒdjo@|ddGHx|D]}|dd|GHqFW|ddGHnt$|ƒdjo$t$|ƒdjo|ddGHq­ndS(NtupRs || s <| is*Snapshot of: s*Mirror of: s*Created by: s*Created on host: s*Platform: s*Python version: s*Pacman version: s*Time of creation: s*Start of last successful -update-check: s*End of last successful -update: R$s=> Update of [s] is available:sCurrent cache list:s sUpdated cache list:is=> Updates of [s] are available:is(=> These cache lists have been modified:s=> Update available.s=> Up to date.((R#RGt displayModetverbotupdtinitRRtindenttleafRR=R?R@tshortR+RFtdisplay2tdisplayREtcR3R8R>R;R5R,tctimeR-R0R1RJRDRIt getUpdatestupdatesR tpt getNewCachest newcaches(R#RPRUR[RYRRNRX((R RTIsv#     .*  ..  $  %$  $ $  &cCst|idƒS(Ntget(RJR#RF(R#((R RQ}scCsO|iƒ}|iƒo2|idjotd|iƒdƒ}qKn|S(NR"sCache [s"] is not in the local file system.(R#RORRR)RR=(R#R((R tlocals   "cCsÑtƒ}|ipº|iiƒ\}}|iƒo”d|jo>|iiƒ}|iƒptd|i ƒdƒ}q¦n'd|jot i |i ƒ|_ n|iƒoçd|joÚ|ii dƒ\}}|iƒo±t|ƒdjo€|d|_|d|_|d |_|d |_|d |_|d |_|d |_|d|_|d|_|d|_|d|_|d|_t|ƒdjo|d|_n d|_|iƒpti |i ƒ|_!xu|iD]j}|i#ddƒ}|i#dt%ƒ}t&t'i(i)|i |ƒƒ}||_+d|_,|i!i-|ƒqíWd|i!_nd|_q–td|i ƒdƒ}qÅqÉ|iƒotd|i ƒdƒ}qÉqÍn|S(NtlocksMirror [s'] is being updated. Try again later...so..basemirror..os o..mirror..oi iiiiiiiiii i i t:t_t/t[s] is unreadable.s ] is not available at this time.(.RRR#R(R&t namesPathtfilesRt lockCheckR=tMirrorBaseCacheR'RFtgetObjttupR R+R-R0R1R3R5RBRDR8R;R>RARt _snapthosRQtUniversalCachet CacheListREtnameR:ttnameRRRRtjoinRURIRGtappend(R#RdRURlRhRRm((R RO…sZ     "                    " &c Cstƒ}|idj oÊ|ioÀtii|iƒptd|iƒdƒ}n|i ƒo{yAt tii |idƒƒt tii |idƒdƒ}|i|i|i|i|i|i|i|i|i|i|i|i|if }ti||ƒ|iƒdo‹|iodk}|itii |idƒƒ\}}|i ƒo@t tii |idƒdƒ}|i!|dƒ|iƒq¥nWqàt"t#fj o!td |iƒdƒ}qàXqþntd|iƒdƒ}|S( NR"s Can't save [s].s o..mirror..otwiRs sFailure attempting to save [($RRR#R)R(RRtisdirR=Rt removeFileRntopentfR+R-R0R1R3R5RBRDR8R;R>RARRhtcPickletdumptclosetmd5sumthexsumtwritetIOErrortOSError(R#RyRtRhRxR((R tsave²s,  !T  ' !'cCsv|iƒiƒ}g}|iƒo|i|iiƒƒn4x0|i D]%}|iƒ}|i|iƒƒqIW|S(N( R#ROtrequireRRXRQtextendRFRWRERUtx(R#RURRXR€((R RWÍs   cCsug}|iƒp^t|idƒo |itii|i ƒƒqqx(|i D]}|i |i ƒƒqPWn|S(NR$(R[R#RQRJRDRoR?R@RRR+RERURRZ(R#RUR[((R RZÖs   cCsØtƒ}y˜ttii|idƒdƒ}|i dƒ|i dƒ|i o|i dƒn|i dƒ|i dƒ|i dƒ|i dƒ|i ƒWn0t t fj otd |id ƒ}nX|S( NtREADMERps# s0# DO NOT MODIFY THE CONTENTS OF THIS DIRECTORY s/# - This is a Pacman snapshot cache - s-# - This is a Pacman mirror cache - s-# - Created and Modified by Pacman - s-# - see http://physics.bu.edu/pacman - sCan't write to [s].(RRRsRRRnR#R)RtRzRRwR{R|(R#RtR((R treadmeÞs !       cCstd|iƒd|idjƒ}|iƒo*td|iƒd|idjƒ}n|iƒo˜ti|iƒi}|i djo¤t i ƒ|_ t i|i ƒ|_tid|id|iƒ}|iƒo|iƒ}n|iƒo1|iƒ}|iƒod|_ti|iƒ|_g|_xÚ|D]Ò}t|d ƒo|ii|iƒntd ƒ}Pti|id tƒ}ti|d d ƒ}t!i"i#|i|ƒ}t%||iƒ}|i|_|i'|iƒ}|iƒpPn|ii|ƒqEWd|i_(q/q§nu|i djotd|idƒ}nJt)i)|i|iƒ}||_|i'ƒ}||_d|_g|_|iƒoJt i ƒ|_+|iƒo d|_(n|iƒo|i,ƒ}qþqn|S(NsCan't create [s] from a remote location.R"sNo cache specified for [s].tlists rm -r -f s; mkdir RIsCan't mirror trusted.caches.RaR_R`iRsZYou can't currently mirror/snapshot a mirror/snapshot. Attempting to mirror or snapshot [(-RR#R=R)RRR+RjRERR$R,R-R.R/R0RRR‚RORCRFRkR'RBRURJRoRItstringR:RttRRRntlocRtmirRR(RfRlR1R}(R#RlR†RURR…RR‡((R Rîs^& * !                 cCs§|i||ƒ\}}|io |iƒo|i|ƒ}n|io&|iƒo|i |ƒ\}}nx(t t |ƒƒD]}||i ƒq…W||fS(N(R#t getAllBasetspectusedRtpsRGRt prependToptprependtrangeR tit setParent(R#R‰RŠR‹RR((R tgetAllscCstii|iƒg}}|iƒo|iƒ}n|iƒow|t i ƒjo|i gƒ\}}q½|i ƒo|ii||ƒ\}}q½|ii||ƒ\}}n|iƒo?t|ƒdjo,td|iƒd|iƒdƒ}n|iot|ƒdjoítdƒ oßtdƒ oÑtdƒ oÃtdƒ oµ|t i ƒj o¡ti|diiƒƒp€tid d |diid tii|iƒd ƒtd ƒot |diiƒd ƒndt|diiƒUsRKs=> Update of [s ] exists.s => Snapshot [s] can't be updated, however.R”s] found.s=> Use -update to update [s].(+R#RORRR]R,R…RQRFt updateCheckRjR+RERR$RkRDRURIR:R†RRRRnR)RR'R‡RoR tforallRŽRCRRMRžR?R@RRR R0R}(R#R†RURR…RR‡((R#R R¢BsH       D  ' '!     cCss|iƒ}|iƒoV|iƒo|iiƒ}qox3|iD]$}|iƒ}|iƒpPqCqCWn|S(N( R#RORRRQRFt updateResolveRERU(R#RRU((R R¤fs      cCss|iƒ}|iƒoV|iƒo|iiƒ}qox3|iD]$}|iƒ}|iƒpPqCqCWn|S(N( R#RORRRQRFt updateTransRERU(R#RRU((R R¥qs      csð|iƒ}t|idƒo_xe|iD]Z‰ˆiƒiƒpAti ddˆ dƒˆi ˆi ƒ}|iƒpPqƒq)q)W|iƒoæxq|i D]f‰t |i‡d†ƒpGti ddˆi dƒtidˆiƒ}|iƒpPqqžqžW|iƒoati|iƒ|_ g|_x$|i D]‰|iiˆi ƒq=Wtiƒ|_d|_qzq~n|iƒoD|iƒ o6x3|i D]$‰ˆiƒ}|iƒpPq£q£Wn|iƒo|iƒ}n|S( NR$RKsAdding [s] to mirror...cs|iˆijS(N(tdRIRU(R¦(RU(R R¡‡ss Removing [s] from mirror...s rm -r -f (R#R]RRJRDRURORRMRžRRIRERRRR'R.R/RBRoR,R1RCRQR[R}(R#RUR((RUR R[|sD             cCs–|iƒ}|iƒotd| d|iƒ}n|iƒoMd}y|iƒo|iƒ}n|iƒo|iƒ}n|iƒodt i |i              sCache is being modified...cCsÁ|iƒ}|iƒo¤|idjotd|iƒdƒ}q½y<tti i |idƒdƒ}|i |ƒ|iƒWq½ttfj o!td|iƒdƒ}q½Xn|S(NR"s Can't lock [s] from remote location.R^RpsCan't write to [s].(R#RORRR)RR=RsRRRnRtRztmessageRwR{R|(R#R«RtR((R R^°s  ! #cCsW|idjotd|iƒdƒ}n&tidtii |idƒƒ}|S(NR"sCan't unlock [s] from remote location.srm R^( R#R)RR=RRRRRRn(R#R((R Rª¼s%(t__name__t __module__RHR=RTRQR]ROR}RWRZR‚RR‘RˆRšR R¢R¤R¥R[R”R^Rª(((R R)s,   4   -    /     $   (tBaseRtCacheR%RjRfR•R˜R?R<R¨R,R6RR„R9RR!R›t _messageDBR(R9R%RfR6RR˜R¯R›R!R¨R<RR?R,R°RRRjR„R•((R t?sZ-