From d4cd8ba1091a4a5261659a6d91f84068573b744e Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Tue, 5 Sep 2023 20:42:32 +0200
Subject: [PATCH] add new script for renaming report folders

---
 .../useful_scripts/rename_report_folders.py   | 38 +++++++++++++++++++
 1 file changed, 38 insertions(+)
 create mode 100644 webservice/useful_scripts/rename_report_folders.py

diff --git a/webservice/useful_scripts/rename_report_folders.py b/webservice/useful_scripts/rename_report_folders.py
new file mode 100644
index 000000000..3f75a74f4
--- /dev/null
+++ b/webservice/useful_scripts/rename_report_folders.py
@@ -0,0 +1,38 @@
+import argparse
+import os
+
+# Update runs into 4 digits integers e.g. r2 to r0002.
+
+
+def rename_folders_in_directory(directory_path, really):
+    for folder_name in os.listdir(directory_path):
+        if folder_name.startswith('r') and folder_name[1:].isdigit():
+            new_folder_name = 'r' + folder_name[1:].zfill(4)
+            old_path = os.path.join(directory_path, folder_name)
+            new_path = os.path.join(directory_path, new_folder_name)
+            if really:
+                os.rename(old_path, 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='Rename run folders.')
+parser.add_argument(
+    '--runs-directory',
+    type=str,
+    help='Directory path to the runs that needs to be renamed',
+    required=True,
+)
+parser.add_argument(
+    '--really', action='store_true',
+    help="Actually make changes (otherwise dry-run)")
+args = parser.parse_args()
+
+if args.runs_directory:
+    runs_directory = args.runs_directory
+else:
+    assert args.runs_directory, "Specify the runs directory"
+
+rename_folders_in_directory(runs_directory, args.really)
-- 
GitLab