mò fDc@s™dkZdkZdkZdkZdkZdklZlZlZlZdfd„ƒYZ d„Z d„Z dd„Z dd„Zdd„ZdS( N(sdebugserrorstracesfatalt InstallErrorcBstZRS(N(t__name__t __module__(((t(/home/samy/kbilliards/wafadmin/Common.pyR scCs,yti|ƒWnti|ƒnXdS(N(toststattdirtmakedirs(R((Rt check_dirscCstido;d||fGHyti||ƒWq‹tdƒq‹XnCtido4d|GHyti|ƒWq‹t j oq‹XndS(Ntinstalls* installing %s as %sscould not install the filet uninstalls* uninstalling %s( tParamst g_commandstsrcttgttshutiltcopy2tfatalRtremovetOSError(R R((Rt do_installs cCs„tid otid odSnti} |ptiid}n| i}t|ƒt i jo |} nd|i ƒ} ||}|iƒ} | o%tii| |itiƒƒ}n|o%tii||itiƒƒ}nt|ƒx‚| D]z} | }y'| i dƒ} | t| ƒd}WnnXtii|iƒ| ƒ}tii||ƒ}t ||ƒqWdS(NR R tdefaultt t/i(!R R tg_buildtbldtenvt m_allenvst m_curdirnodetnodettypetfilesttypestListTypetlsttsplittvartdestpatht get_destdirtdestdirRtpathtjointlstriptseptsubdirRtfilenametnametlnametlentabspathtfiletdestfileR(R$R,RRRR2R.R%R3R'R-R/R"R((Rt install_filess6     %% c Cstid otid odSnti} |ptiid}n| i}||}|i ƒ}|o%t i i||it iƒƒ}nt i i||it iƒƒ}t i i|ƒ\} }t| ƒt i i|iƒ|it iƒƒ}t||ƒdS(NR R R(R R RRRRRRR$RR&R'RR(R)R*R+R3R#RR.RR1tsrcfileR R( R$R3R5RRR R.RR'RR((Rt install_as<s    %! 'c Csatid otid odSnti}|ptiid}n|i}||}|i ƒ}|o%t i i||it iƒƒ}nt i i||it iƒƒ}t i i|ƒ\} }t| ƒtido9y'd||fGHt i||ƒdSWq]dSq]Xn?tido0yd|GHt i|ƒdSWq]dSq]XndS(NR R Rs* symlink %s (-> %s)iis * removing %s(R R RRRRRRR$RR&R'RR(R)R*R+tdestR#RR.RR tsymlinkR( R$R R7RRR.RR'RR((Rt symlink_asNs6    %!    (RR RtActionR tdebugterrorttraceRRRRtNoneR4R6R9(RRRR=R4R;R R9R6R<R:RRR R((Rt?s