import re import sys def rearrange(filename): with open(filename, 'r') as file: content = file.read() # Regex to find the blocks of code to rearrange pattern = re.compile(r'(putIndex\(new SimpleSubscriberInfo\(.*?\)\);)', re.DOTALL) blocks = pattern.findall(content) # Sort blocks based on the class names mentioned in SimpleSubscriberInfo instances sorted_blocks = sorted(blocks, key=lambda x: re.search(r'SimpleSubscriberInfo\((.*?),', x).group(1)) # Replace the original blocks with the sorted blocks sorted_content = pattern.sub(lambda match: sorted_blocks.pop(0), content) with open(filename, 'w') as file: file.write(sorted_content) # Project root relative to the script project_root = __file__[:-len('/scripts/fixEventBus.py')] path = './build/generated/ap_generated_sources/release/out/eu/toldi/infinityforlemmy/EventBusIndex.java' # Print the path to the file to stderr print(path, file=sys.stderr) # Call the function with the path to EventBusIndex.java rearrange(path)