import argparse
import os
from pathlib import Path

# Update runs into 4 digits integers e.g. r2 to r0002.


def rename_report_folders_for_instrument(directory_path, really):
    for folder_name in directory_path.glob("*/*/usr/Reports/*"):
        if folder_name.name.startswith('r') and folder_name.name[1:].isdigit():
            new_folder_name = 'r' + folder_name.name[1:].zfill(4)
            new_path = folder_name.parent.joinpath(new_folder_name)
            if really:
                folder_name.rename(new_path)
                print(f'Renamed {folder_name} to {new_folder_name}')
            else:
                print(f'Will rename {folder_name} to {new_folder_name}')


parser = argparse.ArgumentParser(
    description='Instrument to change the report folders for.')
parser.add_argument(
    '--instrument',
    type=str,
    help='instrument name',
    required=True,
)
parser.add_argument(
    '--really', action='store_true',
    help="Actually make changes (otherwise dry-run)")
args = parser.parse_args()
instrument = args.instrument


path = "/gpfs/exfel/exp/{instrument}"

rename_report_folders_for_instrument(Path(path.format(instrument=instrument)), args.really)