
    \i                     L    S r SSKrSSKJr  S\\   S\\   4S jrS\S\4S jrg)	u@   
部署验证工具

提供检测题目是否可部署的功能
    N)Optional
output_dirreturnc                     U (       d  g[         R                  R                  U 5      (       d  g[        U 5      nUR	                  S5      (       d  UR	                  S5      (       a  gg)u  
检查题目是否可部署

通过检查输出目录中是否存在 Docker 配置文件来判断：
- docker-compose.yml 或 docker-compose.yaml
- Dockerfile

Args:
    output_dir: 题目输出目录路径
    
Returns:
    Optional[bool]: 
        - True: 可部署（找到 Docker 配置文件）
        - False: 不可部署（目录存在但无 Docker 配置文件）
        - None: 无法判断（目录不存在或其他错误）
Ndocker_compose
dockerfileTF)ospathexists_find_docker_filesget)r   docker_filess     V   /Users/yu22x/Desktop/ddd_副本138/ctf/app/services/deployment/deployment_validator.pycheck_challenge_deployabler      sX    " 77>>*%% &j1L ())\-=-=l-K-K     	directoryc                     0 n[         R                  " U 5       Hq  u  p#nU He  nUS:X  d  US:X  a$  [         R                  R                  X%5      US'   M3  US:X  d  M;  SU;  d  MC  [         R                  R                  X%5      US'   Mg     Ms     U$ )u  
递归查找 Docker 配置文件

Args:
    directory: 要搜索的目录路径
    
Returns:
    dict: 包含找到的文件路径的字典
        - 'docker_compose': docker-compose.yml 或 docker-compose.yaml 的路径
        - 'dockerfile': Dockerfile 的路径
zdocker-compose.ymlzdocker-compose.yamlr   
Dockerfiler   )r	   walkr
   join)r   resultroot_filesfiles         r   r   r   -   s     F''),D++t7L/L+-77<<+C'(%v-+-77<<+CF<(  - Mr   )	__doc__r	   typingr   strboolr   dictr    r   r   <module>r"      sA   
 
 8C= Xd^ D# $ r   