mò %U²Ic@sYdkZdklZd„Zd„Zd„Zd„Zd„Zd„Zd„Z dS( N(sST_MTIMEcCs'dGHdGHdGHdGHdGHdGHdGHdS(Ns7All fns have a file open for writing as first parameters.pack(f, fullname, name): pack fullname as names?packsome(f, directory, namelist): selected files from directorys4packall(f, directory): pack all files from directorys?packnotolder(f, directory, name): pack all files from directorys< that are not older than a file theres2packtree(f, directory): pack entire directory tree((((t-/data/zmath/lib/python2.4/lib-old/packmail.pythelp scCs¤t|dƒ}|id|dƒ|id|dƒxM|iƒ}|pPn|ddjo|d}n|id|ƒq<W|id ƒ|iƒdS( Ntrsecho s ssed "s/^X//" >"s" <<"!" iiÿÿÿÿtXs! ( topentfiletfptoutfptwritetnametreadlinetlinetclose(RRR RR ((Rtpacks  cCs?x8|D]0}|GHtii||ƒ}t|||ƒqWdS(N( tnamesR tostpathtjointdirnameRR R(RRRR R((Rtpacksome"s cCscti|ƒ}y|idƒWnnXy|idƒWnnX|iƒt|||ƒdS(Nt.s..(RtlistdirRRtremovetsortRR(RRR((Rtpackall)s cCsúti|ƒ}y|idƒWnnXy|idƒWnnXtii||ƒ}ti|ƒ}|t }g}x`|D]X}|GdGtitii||ƒƒ}|t |jodGH|i|ƒq€dGHq€W|iƒt|||ƒdS(NRs..s...sYes.sNo.(RRRRRRRtoldesttstattsttST_MTIMEtmtimettodoR tappendRRR(RRRR RRRR((Rt packnotolder7s.   cCsúdG|GH|idt|ƒdƒti|ƒ}y|idƒWnnXy|idƒWnnXg}xf|D]^}ti i ||ƒ}ti i |ƒo|i|ƒqvdG|GHt||t|ƒƒqvWx|D]}t||ƒqßWdS(Ntpacktreesmkdir s Rs..R (RRRtunixfixRRRRtsubdirsR RRtfullnametisdirRR t subdirnameR!(RRR R&R#RR$((RR!Qs,  cCsW|itiƒ}d}x8|D]0}|o#|o|d}n||}qqW|S(Ntt/(R tsplitRtseptcompstrestcomp(R R+R-R,((RR"hs( RRRRR RRR R!R"( RR!RR RR"R RR((Rt?s