aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-12-10 23:19:13 +0000
committerMichael Williamson <mike@zwobble.org>2024-12-10 23:19:13 +0000
commita3d55321537a29401fe487e040e3b6ebbd04fc3e (patch)
tree0d1a79be109bd306befca288633b9b82ebb90723 /examples
parent8db67e62cf763a109b8bf3488149b31630795158 (diff)
Add renumbering script for examples
Diffstat (limited to 'examples')
-rwxr-xr-xexamples/renumber.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/renumber.py b/examples/renumber.py
new file mode 100755
index 00000000..28a262c7
--- /dev/null
+++ b/examples/renumber.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+
+import argparse
+import os
+import re
+
+
+def _main():
+ example_dir = os.path.dirname(__file__)
+
+ args = _parse_args()
+
+ renames = []
+
+ for name in sorted(os.listdir(example_dir)):
+ path = os.path.join(example_dir, name)
+ match = re.match("([0-9]+)(-.*)", name)
+
+ if os.path.isdir(path) and match is not None:
+ old_number = int(match[1])
+ is_in_range = (
+ (args.from_number is None or args.from_number <= old_number) and
+ (args.to_number is None or old_number <= args.to_number)
+ )
+ if is_in_range:
+ new_number = old_number + args.delta
+ new_name = f"{new_number}{match[2]}"
+ new_path = os.path.join(example_dir, new_name)
+ print(f"{name} -> {new_name}")
+
+ if os.path.exists(new_path):
+ raise ValueError("destination already exists")
+
+ renames.append((path, new_path))
+
+ for old_path, new_path in renames:
+ os.rename(old_path, new_path)
+
+
+def _parse_args():
+ parser = argparse.ArgumentParser()
+
+ parser.add_argument("--delta", required=True, type=int)
+ parser.add_argument("--from", required=False, type=int, dest="from_number")
+ parser.add_argument("--to", required=False, type=int, dest="to_number")
+
+ return parser.parse_args()
+
+
+if __name__ == "__main__":
+ _main()