;ς |oPFc@sΰdZdkZdkZdkZdkZdkZdkZdkZdkZdk Z dkl Z d„Z d„Z dei fd„ƒYZdei fd„ƒYZd „Zd ei fd „ƒYZd „Zd „ZdS(sO Custom objects: - execute a function everytime - copy a file somewhere else N(sfatalcCs€|i}|idi|ƒ}|idi|ƒ}y9ti ||ƒ|i ot i ||i ƒndSWn dSnXdS(sqMake a file copy. This might be used to make other kinds of file processing (even calling a compiler is possible)iiN( stasksm_envsenvsm_inputssabspathsinfiles m_outputssoutfilesshutilscopy2schmodsos(stasksoutfilesenvsinfile((sQ/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/misc.pys copy_funcs  cCs*|i otdƒn|i|ƒSdS(s3Ask the function attached to the task to process its?task must have a function attached to it for copy_func to work!N(stasksfunsfatal(stask((sQ/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/misc.pysaction_process_file_funcs scmdobjcBs#tZdZdd„Zd„ZRS(s)This object will call a command everytimesnonecCs2tii|dƒ||_d|_t|_dS(Nsotheri( sObjectsgenobjs__init__sselfstypesm_typespriosNonesfun(sselfstype((sQ/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/misc.pys__init__"s  cCsB|i otdƒndk}|i|i|i|iƒdS(Nscmdobj needs a function!(sselfsfunsfatalsTasksTaskCmdsenvsprio(sselfsTask((sQ/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/misc.pysapply(s  (s__name__s __module__s__doc__s__init__sapply(((sQ/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/misc.pyscmdobj s  scopyobjcBs#tZdZdd„Zd„ZRS(sbBy default, make a file copy, if fun is provided, fun will make the copy (or call a compiler, etc)snonecCsTtii|dƒd|_d|_d|_t|_t i i di ƒ|_ dS(Nsotherssdefault(sObjectsgenobjs__init__sselfssourcestargetschmods copy_funcsfunsParamssg_builds m_allenvsscopysenv(sselfstype((sQ/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/misc.pys__init__0s     cCs|i|iƒ}xφ|D]ξ}|ii|ƒ}| otd|ƒn|i }| pt |ƒdjo |i }n|ii |ƒ}|id|idƒ}|i|ƒ|i|ƒ|i|_|i|_|i|_|i o|iƒtdƒqqWdS(Ns(cannot find input file %s for processingiscopyistask witout an environment(sselfsto_listssourceslstsfilenamespaths find_sourcesnodesfatalstargetslensm_names find_buildsnewnodes create_tasksenvstasks set_inputss set_outputssm_envsfunschmodsdebug(sselfsnodestaskstargetsfilenameslstsnewnode((sQ/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/misc.pysapply:s&         (s__name__s __module__s__doc__s__init__sapply(((sQ/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/Tools/misc.pyscopyobj.s  c CsBtidtiƒ}|i} |idi| ƒ} |i di| ƒ}t | dƒ}|iƒ}|iƒ|id|ƒ}|i}| o~|i|ƒ}xl|D]`}|i|ot|i|ƒtijodi|i|ƒ||