123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #!/usr/bin/python
-
- import os
- import sys
-
- # Go to parent folder
-
- def usage():
- print('')
- print('USAGE: '+__file__+' <step_1_or2> <site_packages_folder_path> ')
- print('')
- print('')
-
-
- def show_help_and_exit():
- usage()
- exit()
-
- def on_result_and_exit(error_code):
- if error_code==0:
- print('')
- print('')
- exit(0)
-
- print('ERRROR')
- print('')
- print('')
- exit(error_code)
-
- #######
-
-
- if len(sys.argv)<=2:
- show_help_and_exit()
-
- ########################################
- #
- # BELOW ARE STANDARD ACTIONS
- #
- ########################################
-
- patch_step = sys.argv[1]
- sitepackages_path = sys.argv[2]
-
- print('PATCHING PYTHON CODE')
- print('--------------------')
- print('site packages path: %s'%(sitepackages_path))
- print('')
-
- if patch_step=='1':
-
- patchable_paths = [
- sitepackages_path+'/tgext/pluggable',
- sitepackages_path+'/resetpassword',
- sitepackages_path+'/babel'
- ]
-
- for patchable_path in patchable_paths:
- print('2to3 conversion for %s...' % (patchable_path))
- os.system('2to3 -w %s'%(patchable_path))
- print('-> done')
-
- babel_source_code_patch_content = """--- tg2env/lib/python3.2/site-packages/babel/messages/pofile.py 2014-11-07 15:35:14.039913184 +0100
- +++ tg2env/lib/python3.2/site-packages/babel/messages/pofile.py 2014-10-30 17:37:36.295091573 +0100
- @@ -384,8 +384,13 @@
-
- def _write(text):
- if isinstance(text, text_type):
- - text = text.encode(catalog.charset, 'backslashreplace')
- - fileobj.write(text)
- + pass
- + # text = text.encode(catalog.charset, 'backslashreplace')
- + try:
- + fileobj.write(text.encode('UTF-8'))
- + except Exception as e:
- + fileobj.write(text)
- +
-
- def _write_comment(comment, prefix=''):
- # xgettext always wraps comments even if --no-wrap is passed;
- """
-
- babel_patchable_file_path = sitepackages_path+'/babel/messages/pofile.py'
- print('Patching code in file %s...'%(babel_patchable_file_path))
- os.system('echo "%s"|patch -p1 %s'%(babel_source_code_patch_content, babel_patchable_file_path))
- print('-> done')
-
- elif patch_step=='2':
- resetpassword_patchable_file_path = sitepackages_path+'/resetpassword/lib/__init__.py'
- print('Patching code in file %s...'%(resetpassword_patchable_file_path))
- os.system("sed -i 's/body\.encode/body/g' %s" % (resetpassword_patchable_file_path))
- print('-> done')
-
- else:
- show_help_and_exit()
-
- print('')
- print('')
-
-
|