123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- import argparse
- import sys
- import shutil
- import json
- from pathlib import Path
- # Add the utils directory to the Python path
- utils_path = Path(__file__).parent.parent / 'utils'
- sys.path.append(str(utils_path))
- from file_utils import find_files_by_extension
- def main():
- parser = argparse.ArgumentParser(description="Copies all C# scripts (.cs) to the target directory.")
- parser.add_argument("--input", type=str, required=True, help="The root directory of the target Unity project.")
- parser.add_argument("--output", type=str, required=True, help="The directory where the output will be saved.")
- # Add arguments that are passed by the orchestrator but not used by this script
- parser.add_argument("--indent", type=int, default=None)
- parser.add_argument("--shrink-json", action='store_true')
- parser.add_argument("--ignored-folders", type=str, default='[]', help='JSON string of folders to ignore.')
- args = parser.parse_args()
- try:
- ignored_folders = json.loads(args.ignored_folders)
- except json.JSONDecodeError:
- print("Warning: Could not parse ignored-folders JSON string. Defaulting to empty list.", file=sys.stderr)
- ignored_folders = []
- input_dir = Path(args.input).resolve()
- output_dir = Path(args.output).resolve()
- assets_dir = input_dir / "Assets"
- output_assets_dir = output_dir / "Assets"
- if not assets_dir.is_dir():
- return
- cs_files = find_files_by_extension(str(assets_dir), '.cs', ignored_folders=ignored_folders, project_root=input_dir)
- if not cs_files:
- print("No C# scripts found to copy.")
- return
- print(f"\n--- Starting Script Handling ---")
- print(f"Found {len(cs_files)} C# script files to copy.")
- for script_path_str in cs_files:
- script_path = Path(script_path_str)
- relative_path = script_path.relative_to(assets_dir)
- destination_path = output_assets_dir / relative_path
-
- destination_path.parent.mkdir(parents=True, exist_ok=True)
-
- try:
- shutil.copy(script_path, destination_path)
- except IOError as e:
- print(f"Error copying {script_path} to {destination_path}: {e}", file=sys.stderr)
-
- print("Script copying complete.")
- if __name__ == "__main__":
- main()
|