;ò |oPFc@s±dZdkZdkZdkZdkZdkZdkZdklZlZdfd„ƒYZ d„Z dd„Z e d„Z e dd „Ze dd „Ze d „ZdS( sZImportant functions: install_files, install_as, symlink_as (destdir is taken into account)N(serrorsfatals InstallErrorcBstZRS(N(s__name__s __module__(((sM/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Common.pys InstallError scCs`yti|ƒWnHtj o<yti|ƒWq\tj otd|ƒq\XnXdS(NsCannot create folder (sossstatsdirsOSErrorsmakedirssfatal(sdir((sM/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Common.pys check_dirsi¤cCsùtido¥d}tii o_y?ti|ƒi}ti|ƒi}||jo d}nWqt j o d}qXn|o'|}yT|itiiitƒtidƒ}|itiiitƒtidƒ}WnnXd||fGHyti|ƒWnt j onXy$ti||ƒti||ƒWq¯tj oVyti|ƒWn'tj otdt|ƒƒnXtdt|ƒƒq¯XqõnCtido4d |GHyti|ƒWqõt j oqõXndS( Nsinstalliiss* installing %s as %ssfile %s does not existsCould not install the file %ss uninstalls* uninstalling %s(sParamss g_commandss _do_installs g_optionssforcesossstatstgtsst_mtimest1ssrcst2sOSErrorssrclblsreplacesg_builds m_bldnodesabspathsNonesseps m_srcnodesremovesshutilscopy2schmodsIOErrorserrorsstrsfatal(ssrcstgtschmodst2st1ssrclbls _do_install((sM/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Common.pys do_installsJ (,! cCs»ti}| otiid}n||}| otd|ƒ|}n|iƒ}|o%t i i ||i t iƒƒ}n|o%t i i ||i t iƒƒ}n|SdS(Nsdefaults5Installing: to set a destination folder use env['%s'](sParamssg_buildsbldsenvs m_allenvssvarsdestpathserrors get_destdirsdestdirsosspathsjoinslstripssepssubdir(svarssubdirsenvsdestpathsdestdirsbld((sM/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Common.pys path_install<s    %%cCstid o tid odSnti} | otiid}n| i}t|ƒt i joGd|jo*|i ƒt i|}ti|ƒ}q·|iƒ}n|}||} | otd|ƒ|} n|iƒ}|o%t ii|| it iƒƒ} n|o%t ii| |it iƒƒ} nt| ƒx²|D]ª} t ii| ƒ oOti | ƒ} |i"| ddƒ} | i |ƒ}t ii| | i%ƒ}n/| }ti | ƒ} t ii| | dƒ}t'||d |ƒqVWdS( Nsinstalls uninstallsdefaults*s5Installing: to set a destination folder use env['%s']screateiiÿÿÿÿschmod()sParamss g_commandssg_buildsbldsenvs m_allenvss m_curdirnodesnodestypesfilesstypess StringTypesabspathsosssepsglsglobslstssplitsvarsdestpathserrors get_destdirsdestdirspathsjoinslstripssubdirs check_dirsfilenamesisabssUtilss split_pathsalstsfind_build_lstsfilenodesfilesm_namesdestfiles do_installschmod(svarssubdirsfilessenvschmodsnodeslstsfilesglsfilenodesalstsfilenamesbldsdestpathsdestdirsdestfile((sM/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Common.pys install_filesIsB      %% cCsAtid o tid odSnti} | otiid}n| i}||}|i ƒ} | o%t i i| |it iƒƒ}nt i i||it iƒƒ}t i i|ƒ\} }t| ƒt i i|ƒ o7ti|ƒ} |i| ddƒ} | i|ƒ}n|}t||d|ƒdS(Nsinstalls uninstallsdefaultscreateischmod(!sParamss g_commandssg_buildsbldsenvs m_allenvss m_curdirnodesnodesvarstgts get_destdirsdestdirsosspathsjoinslstripssepsdestfilessplitsdirsnames check_dirsisabsssrcfilesUtilss split_pathsalstsfind_build_lstsfilenodesabspathssrcs do_installschmod(svarsdestfilessrcfilesenvschmodsnodessrcsnamestgtsalstsdirsfilenodesbldsdestdir((sM/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Common.pys install_asrs&    %! c Csztid o tid odSnti}| otiid}n|i}||}|i ƒ}|o%t i i||it iƒƒ}nt i i||it iƒƒ}t i i|ƒ\} }t| ƒtidoEy'd||fGHt i||ƒdSWqvtj o dSqvXnKtido<yd|GHt i|ƒdSWqvtj o dSqvXndS(Nsinstalls uninstallsdefaults* symlink %s (-> %s)iis * removing %s(sParamss g_commandssg_buildsbldsenvs m_allenvss m_curdirnodesnodesvarstgts get_destdirsdestdirsosspathsjoinslstripssepsdestssplitsdirsnames check_dirssrcssymlinksOSErrorsremove( svarssrcsdestsenvsnodesnamestgtsdestdirsbldsdir((sM/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Common.pys symlink_as‹s6    %!    (s__doc__sosstypessshutilsglobsParamssUtilsserrorsfatals InstallErrors check_dirs do_installsNones path_installs install_filess install_ass symlink_as(s do_installs path_installsfatals InstallErrorsglobs install_filessParamss symlink_ass install_asserrorsshutilsossUtilsstypess check_dir((sM/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Common.pys?s$ $ )