105 lines
3.5 KiB
Python
105 lines
3.5 KiB
Python
|
#! /usr/bin/env python
|
||
|
# encoding: utf-8
|
||
|
|
||
|
import os
|
||
|
all_modifs={}
|
||
|
def modif(dir,name,fun):
|
||
|
if name=='*':
|
||
|
lst=[]
|
||
|
for y in'. Tools 3rdparty'.split():
|
||
|
for x in os.listdir(os.path.join(dir,y)):
|
||
|
if x.endswith('.py'):
|
||
|
lst.append(y+os.sep+x)
|
||
|
for x in lst:
|
||
|
modif(dir,x,fun)
|
||
|
return
|
||
|
filename=os.path.join(dir,name)
|
||
|
f=open(filename,'r')
|
||
|
txt=f.read()
|
||
|
f.close()
|
||
|
txt=fun(txt)
|
||
|
f=open(filename,'w')
|
||
|
f.write(txt)
|
||
|
f.close()
|
||
|
def subst(filename):
|
||
|
def do_subst(fun):
|
||
|
global all_modifs
|
||
|
try:
|
||
|
all_modifs[filename]+=fun
|
||
|
except KeyError:
|
||
|
all_modifs[filename]=[fun]
|
||
|
return fun
|
||
|
return do_subst
|
||
|
def r1(code):
|
||
|
code=code.replace("'iluvcuteoverload'","b'iluvcuteoverload'")
|
||
|
code=code.replace("ABI=7","ABI=37")
|
||
|
return code
|
||
|
def r2(code):
|
||
|
code=code.replace("p.stdin.write('\\n')","p.stdin.write(b'\\n')")
|
||
|
code=code.replace('p.communicate()[0]','p.communicate()[0].decode("utf-8")')
|
||
|
return code
|
||
|
def r3(code):
|
||
|
code=code.replace("m.update(str(lst))","m.update(str(lst).encode())")
|
||
|
code=code.replace('p.communicate()[0]','p.communicate()[0].decode("utf-8")')
|
||
|
return code
|
||
|
def r33(code):
|
||
|
code=code.replace('unicode','str')
|
||
|
return code
|
||
|
def r4(code):
|
||
|
code=code.replace("up(self.__class__.__name__)","up(self.__class__.__name__.encode())")
|
||
|
code=code.replace("up(self.env.variant())","up(self.env.variant().encode())")
|
||
|
code=code.replace("up(x.parent.abspath())","up(x.parent.abspath().encode())")
|
||
|
code=code.replace("up(x.name)","up(x.name.encode())")
|
||
|
code=code.replace('class TaskBase(object):\n\t__metaclass__=store_task_type','import binascii\n\nclass TaskBase(object, metaclass=store_task_type):')
|
||
|
code=code.replace('keys=self.cstr_groups.keys()','keys=list(self.cstr_groups.keys())')
|
||
|
code=code.replace("sig.encode('hex')",'binascii.hexlify(sig)')
|
||
|
code=code.replace("os.path.join(Options.cache_global,ssig)","os.path.join(Options.cache_global,ssig.decode())")
|
||
|
return code
|
||
|
def r5(code):
|
||
|
code=code.replace("cPickle.dump(data,file,-1)","cPickle.dump(data,file)")
|
||
|
code=code.replace('for node in src_dir_node.childs.values():','for node in list(src_dir_node.childs.values()):')
|
||
|
return code
|
||
|
def r6(code):
|
||
|
code=code.replace('xrange','range')
|
||
|
code=code.replace('iteritems','items')
|
||
|
code=code.replace('maxint','maxsize')
|
||
|
code=code.replace('iterkeys','keys')
|
||
|
code=code.replace('Error,e:','Error as e:')
|
||
|
code=code.replace('Exception,e:','Exception as e:')
|
||
|
return code
|
||
|
def r7(code):
|
||
|
code=code.replace('class task_gen(object):\n\t__metaclass__=register_obj','class task_gen(object, metaclass=register_obj):')
|
||
|
return code
|
||
|
def r8(code):
|
||
|
code=code.replace('proc.communicate()[0]','proc.communicate()[0].decode("utf-8")')
|
||
|
return code
|
||
|
def r9(code):
|
||
|
code=code.replace('f.write(c)','f.write(c.encode("utf-8"))')
|
||
|
return code
|
||
|
def r10(code):
|
||
|
code=code.replace("key=kw['success']","key=kw['success']\n\t\t\t\ttry:\n\t\t\t\t\tkey=key.decode('utf-8')\n\t\t\t\texcept:\n\t\t\t\t\tpass")
|
||
|
code=code.replace('out=str(out)','out=out.decode("utf-8")')
|
||
|
code=code.replace('err=str(err)','err=err.decode("utf-8")')
|
||
|
return code
|
||
|
def r11(code):
|
||
|
code=code.replace('ret.strip()','ret.strip().decode("utf-8")')
|
||
|
return code
|
||
|
def fixdir(dir):
|
||
|
global all_modifs
|
||
|
for k in all_modifs:
|
||
|
for v in all_modifs[k]:
|
||
|
modif(os.path.join(dir,'wafadmin'),k,v)
|
||
|
|
||
|
subst('Constants.py')(r1)
|
||
|
subst('Tools/ccroot.py')(r2)
|
||
|
subst('Utils.py')(r3)
|
||
|
subst('ansiterm.py')(r33)
|
||
|
subst('Task.py')(r4)
|
||
|
subst('Build.py')(r5)
|
||
|
subst('*')(r6)
|
||
|
subst('TaskGen.py')(r7)
|
||
|
subst('Tools/python.py')(r8)
|
||
|
subst('Tools/glib2.py')(r9)
|
||
|
subst('Tools/config_c.py')(r10)
|
||
|
subst('Tools/d.py')(r11)
|