
    7jg                     j    d Z ddlmZ ddlmZmZ d Zd Zd Z ej                  dd	      d
        Z
y)z(Validates the list of keyboard aliases.
    )cli)keyboard_folderkeyboard_alias_definitionsc                 8    	 t        |       S # t        $ r Y y w xY w)N)r   	Exceptiontargets    T/home/hanthebot/chat/keyboard/qmk_firmware/lib/python/qmk/cli/ci/validate_aliases.py_safe_keyboard_folderr      s$    v&& s   
 	c                 "    | syt        |       syy)NFT)r   r   s    r
   _target_keyboard_existsr      s     !(     c                     t               }t               }| |v r0|j                  |        ||    j                  d|       } | |v ry| |v r0y)zTCheck if alias points to itself, either directly or within a circular reference
    r	   FT)r   setaddget)aliasaliasesfounds      r
   _alias_not_selfr      sV     )*GEE
7
		%""8U3E>	 7
 r   z'Validates the list of keyboard aliases.T)hiddenc                 *   t               }d}|j                         D ]s  }||   j                  dd       }t        |      s"| j                  j                  d| d       d}Et        |      rQ| j                  j                  d| d|        d}u |S )NTr	   zKeyboard alias z should not point to itselfFz" has a target that doesn't exist: )r   keysr   r   logerrorr   )r   r   successr   r	   s        r
   ci_validate_aliasesr   +   s    (*GG ##Hd3u%GGMMOE72MNOG(0GGMMOE72UV\U]^_G Nr   N)__doc__milcr   qmk.keyboardr   r   r   r   r   
subcommandr    r   r
   <module>r#      sB     D
 9$G Hr   