
    7je
                     b   d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZ d dlmZ  ej"                  dd	d
d       ej"                  ddee
d       ej"                  dded       ej"                  ddd
dg d       ej$                  d      d                                    Zy)    Path)cli)parse_env_vars)QMK_USERSPACEHAS_QMK_USERSPACE)keyboard_completerkeyboard_folder_or_all)keymap_completeris_keymap_target)UserspaceDefsbuilds*TzJList of builds in form <keyboard>:<keymap>, or path to a keymap JSON file.)nargsarg_onlyhelpz-kbz
--keyboardzUThe keyboard to build a firmware for. Ignored when a configurator export is supplied.)type	completerr   z-kmz--keymapzSThe keymap to build a firmware for. Ignored when a configurator export is supplied.)r   r   z-ez--envappendzBExtra variables to set during build. May be passed multiple times.)r   actiondefaultr   z,Adds a build target to userspace `qmk.json`.c                   	 t         s| j                  j                  d       yt        | j                  j
                        dk(  rd nt        | j                  j
                        }t        t        dz        }t        | j                  j                        dkD  rt        t        d | j                  j                        D cg c]  }t        |       c}      	t        t        	fd| j                  j                              }	D ]  }|j                  |        |D ],  }|j                  d      }|j                  |d   |d	   
       . |j/                         S d}	 t        | j                  j                   | j                  j"                        sd}|rddlm} | j                  j                   | j*                  j(                  _        | j                  j"                  | j*                  j(                  _        d| j                  _         ||       dur<|j                  | j                  j                   | j                  j"                  |       |j/                         S |j                  | j                  j                   | j                  j"                  |       |j/                         S c c}w # t$        $ r d}Y ,w xY w)NzjCould not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.Fr   zqmk.jsonc                 h    t        |       j                         xr t        |       j                  dk(  S )Nz.json)r   existssuffix)es    N/home/hanthebot/chat/keyboard/qmk_firmware/lib/python/qmk/cli/userspace/add.py<lambda>zuserspace_add.<locals>.<lambda>   s)    DGNNDTDrY]^_Y`YgYgkrYr     c                     t        |       vS )Nr   )r   json_like_targetss    r   r   zuserspace_add.<locals>.<lambda>   s    $q'AR2R r   )	json_path:   )keyboardkeymapT)
new_keymap)r%   r&   	build_env)r   logerrorlenargsenvr   r   r   r   listfilterr   
add_targetsplitr   r%   r&   KeyErrorqmk.cli.new.keymapr'   configskip_convertersave)
r   r(   	userspacepmake_like_targetsr   sfailedr'   r!   s
            @r   userspace_addr<      sF      C  	DCHHLL)Q.N388<<4PImj89I
388??a 6:rtwt|t|  uD  uD  4E  "Fa$q'  "F  G (RTWT\T\TcTc!de" 	.A  1 -	. # 	=AA  !A$qt <	=, >># 	#CHH$5$5sxxG 5-0XX->->CJJ!!*+.88??CJJ!!(&*CHH##e+$$chh.?.?cl$m >>   #((*;*;CHHOO_h i>>9 "F  	F	s   J4%6J9 9KKN)pathlibr   milcr   qmk.commandsr   qmk.constantsr   r   qmk.keyboardr	   r
   
qmk.keymapr   r   qmk.userspacer   argument
subcommandr<    r   r   <module>rG      s      ' : C 9 ' hcD  8D  Ee\(>J\  d{  |eZ+;  CX  YdGd8R  OS  T>?& @ T Y | E
&r   