mirror of
				https://github.com/walkxcode/dashboard-icons.git
				synced 2025-10-28 14:09:05 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import json
 | |
| import sys
 | |
| from pathlib import Path
 | |
| 
 | |
| def generate_folder_tree(paths):
 | |
|     tree = {}
 | |
|     for path in paths:
 | |
|         resolved_path = Path(path).resolve()
 | |
|         base_folder = resolved_path.name or Path.cwd().name
 | |
|         for root, _, files in os.walk(resolved_path):
 | |
|             relative_path = os.path.relpath(root, resolved_path)
 | |
|             key = base_folder if relative_path == '.' else os.path.join(base_folder, relative_path)
 | |
|             if files:
 | |
|                 tree[key] = sorted(files)  # Sort the list of files alphabetically
 | |
|     return tree
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     # Adjust paths to be one level up
 | |
|     folder_paths = sys.argv[1:]
 | |
|     folder_paths = [str(Path(path).resolve()) for path in folder_paths]
 | |
| 
 | |
|     if not folder_paths:
 | |
|         print("Please provide at least one folder path.")
 | |
|         sys.exit(1)
 | |
| 
 | |
|     # Generate the combined folder tree
 | |
|     folder_tree = generate_folder_tree(folder_paths)
 | |
| 
 | |
|     # Write the JSON structure to 'tree.json' in the root folder
 | |
|     root_dir = Path(__file__).resolve().parent
 | |
|     tree_json_path = root_dir / 'tree.json'
 | |
| 
 | |
|     with open(tree_json_path, 'w') as f:
 | |
|         json.dump(folder_tree, f, indent=4, sort_keys=True)  # Sort the keys in the JSON output
 | |
| 
 | |
|     print(f"Folder tree successfully written to '{tree_json_path}'.") | 
