batpack torture

This commit is contained in:
2025-07-31 22:01:59 -06:00
parent 161e153e6f
commit 9f27d66b4d
3 changed files with 800 additions and 2 deletions

View File

@@ -0,0 +1,83 @@
import bpy
import os
import re
def relocate_libraries():
"""
Relocate linked library files from Synology Drive to NAS storage.
Changes paths from C:\\Users\\Nathan\\SynologyDrive\\ to R:\\
"""
# Define the path mappings
old_base = r"C:\Users\Nathan\SynologyDrive"
new_base = r"R:"
# Track changes
changed_files = []
failed_files = []
print("=== Library Relocation Script ===")
print(f"Mapping: {old_base}{new_base}")
print()
# Process all library files
for lib in bpy.data.libraries:
if lib.filepath:
old_path = lib.filepath
# Check if this is a Synology Drive path
if old_base in old_path:
# Create new path
new_path = old_path.replace(old_base, new_base)
# Verify the new file exists
if os.path.exists(new_path):
try:
# Update the library path
lib.filepath = new_path
changed_files.append((old_path, new_path))
print(f"✓ Relocated: {os.path.basename(old_path)}")
print(f" {old_path}")
print(f"{new_path}")
print()
except Exception as e:
failed_files.append((old_path, str(e)))
print(f"✗ Failed to relocate: {os.path.basename(old_path)}")
print(f" Error: {e}")
print()
else:
failed_files.append((old_path, "Target file not found"))
print(f"✗ Target not found: {new_path}")
print()
else:
print(f" Skipped (not Synology Drive): {old_path}")
print()
# Summary
print("=== Summary ===")
print(f"Successfully relocated: {len(changed_files)} files")
print(f"Failed to relocate: {len(failed_files)} files")
if changed_files:
print("\nRelocated files:")
for old, new in changed_files:
print(f" {os.path.basename(old)}")
if failed_files:
print("\nFailed files:")
for old, reason in failed_files:
print(f" {os.path.basename(old)}: {reason}")
return len(changed_files), len(failed_files)
# Run the script
if __name__ == "__main__":
success_count, fail_count = relocate_libraries()
if success_count > 0:
print(f"\n✅ Successfully relocated {success_count} library files!")
print("You may need to save your .blend file to preserve these changes.")
if fail_count > 0:
print(f"\n⚠️ {fail_count} files failed to relocate.")
print("Check that the NAS paths exist and are accessible.")