import os.path import re path = os.getcwd() def format(): for suffix in ['md', 'js', 'ts']: command = f'prettier --write "**/*.{suffix}"' os.system(command) def clang_format(): suffix = ['c', 'cpp', 'java'] for root, _, files in os.walk(path): for name in files: for suf in suffix: if name.endswith('.' + suf): local_path = root + '/' + name command = f'clang-format -i --style=file "{local_path}"' print(command) os.system(command) for root, _, files in os.walk(path): for name in files: if name.endswith('.md'): p1 = root + '/' + name with open(p1, 'r', encoding='utf-8') as f: content = f.read() x = content print(p1) for suf in suffix: res = re.findall(f'```{suf}\n(.*?)```', content, re.S) if not res: continue for v in res: p2 = f'{root}/Solution2.{suf}' with open(p2, 'w', encoding='utf-8') as f: f.write(v) command = f'clang-format -i --style=file "{p2}"' os.system(command) with open(p2, 'r', encoding='utf-8') as f: content = f.read() content = x.replace(v, content) with open(p1, 'w', encoding='utf-8') as f: f.write(content) os.remove(p2) def format_py(): command = 'black -S .' os.system(command) for root, _, files in os.walk(path): for name in files: if name.endswith('.md'): p1 = root + '/' + name with open(p1, 'r', encoding='utf-8') as f: content = f.read() x = content res = re.findall(f'```python\n(.*?)```', content, re.S) if not res: continue print(p1) for v in res: p2 = root + "/tmp.py" with open(p2, 'w', encoding='utf-8') as f: f.write(v) os.system(f'black -S "{p2}"') with open(p2, 'r', encoding='utf-8') as f: content = f.read() content = x.replace(v, content) with open(p1, 'w', encoding='utf-8') as f: f.write(content) os.remove(p2) def git_add(): command = 'git add .' os.system(command) if __name__ == '__main__': clang_format() # format() # format_py() # git_add()