
    MgG                     |    S SK r S SKrS SKJr  S SKJr  S SKJrJrJ	r	  \	" \S9\" S5       " S S5      5       5       r
g)	    N)system)Fore)LINUXpluginrequire)platformmacc                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)MacManagerLinux   z\
Jarvis plugin for viewing and changing any devices MAC
address connected to your computer

c                    U R                  U5      nUR                  S[        [        U5      5      -   S-   5        U R	                  X5      nUS:X  a  g [        X4S-
     R                  5       5      S   nU R                  SU5      nUR                  S[        U5      -   S-   [        U5      -   5        U R                  XVU5      nU R                  U5      n[        X4S-
     R                  5       5      n[        X4S-
     R                  5       5      n	UR                  S	[        U	S   5      -   S
-   [        US   5      -   5        g )Nz	You have z internet device/sexit   r   z!Please choose a new MAC address: zSetting device z to MAC address: zYour new MAC address is:  - )
request_devicessaystrlenshow_optionslistkeysget_new_mac
change_macvalues)
selfjarvissdeviceschoicedevice_choice
mac_choicenew_macr	   names
             @/Users/admin/workspace/ai/Jarvis/jarviscli/plugins/change_mac.py__call__MacManagerLinux.__call__   s9   &&v.

;S\!225IIJ""63VWaZ05578;%%/9


$s='99&'),Z9 	://-VD&&v.7A:&--/0GQJ',,./

.tAw< "'(*-c!f+6 	7    c                 :     [        UR                  U[        R                  5      5      nXS:X  a  gXR::  a  U$ UR	                  S[        R
                  5         UR	                  S5        Mk  ! [         a#    UR	                  S[        R
                  5         N?f = f)Nz7Invalid input! Enter a number from thechoices provided.z8Invalid input! Enter a number from the choices provided. )intinputr   GREENr   YELLOW
ValueError)r   
input_textmax_valid_value
terminatorr   inserted_values         r$   
get_choiceMacManagerLinux.get_choice#   s    !!$V\\*djj%I!J!/#6))JJ,-1[[: JJrN   !

NKK!!s   .A- A-  A- -*BBc                 v     UR                  U[        R                  5      n[        R                  " S5      n[        [        R                  " U[        U5      5      5      S:X  a  U$ UR                  S[        R                  5         M  ! [         a#    UR                  S[        R                  5         N.f = f)N ([0-9a-f]{2}(?::[0-9a-f]{2}){5})r   z7Invalid input! Enter a numberfrom the choices provided.)r,   r   r-   recompiler   findallr   r   r.   r/   )r   input_valuer   regexs       r$   r   MacManagerLinux.get_new_mac5   s    
F$ll;

C

#FGrzz%[)9:;q@&&JJ  <=A[[J   F

 89=FFs   A$B ( B *B87B8c           	         [         R                  " S/SS[         R                  [         R                  S9nUR	                  5       u  p4[        U5      nUR                  S5      nUR                  S5        Sn[        S[        U5      U5       Vs/ s H  nSR                  XWXv-    5      PM     nn/ n	U H  n
U
R                  S5      nUS	   R                  5       S
:X  a  M-  [        R                  " S5      n[        R                  " X5      n[        U5      S	:  a)  U	R                  US	   R                  5       US   05        M  M     U	$ s  snf )Nip linkT)universal_newlinesshellstdoutstderr
r*      r   :r   lor7   )
subprocessPopenPIPESTDOUTcommunicater   splitremoveranger   joinstripr8   r9   r:   append)r   r   outresrC   arrspaniarr1r   xdevice_namer<   r	   s                 r$   r   MacManagerLinux.request_devicesC   s    	{t%)&0ooj>O>O! )#hiio

249!SXt4LM4Lq		#/*4LMA''#,K1~##%-

#FGjj*s8q=NNKN$8$8$:CF#CD   Ns   Ec                    Sn[        [        U5      5       H|  n[        X$   R                  5       5      n[        X$   R	                  5       5      nUR                  [        U5      S-   [        US   5      -   S-   [        US   5      -   5        US-   nM~     UR                  [        U5      S-   5        U R                  SX3U5      nUS:X  a  gU$ )	Nr   z: r   r   z: Exitz Please select a device or Exit: r)   r   )rO   r   r   r   r   r   r   r4   )r   r   rU   countrY   r	   r#   r   s           r$   r   MacManagerLinux.show_options\   s    s3xAsv}}'C&DJJs5zD(3tAw<7%?#c!f+MNAIE	 !
 	

3u:()!C!&v7R<Mr'   c                 x   [         R                  " SU S3/SS[         R                  [         R                  S9nUR	                  5         [         R                  " SU SU 3/SS[         R                  [         R                  S9n[         R                  " SU S3/SS[         R                  [         R                  S9n[         R                  " S/SS[         R                  [         R                  S9n[         R                  " S/SS[         R                  [         R                  S9nUR	                  5       u  pU	$ )	Nzsudo ip link set z downT)rA   r@   rB   rC   z	 address z upz$sudo service network-manager restartr?   )rH   rI   rJ   rK   rL   )r   devicer	   r   downchangeuprestartnew_outnew_resrC   s              r$   r   MacManagerLinux.change_mack   s"   #4VHE!B C&*t'1'1'8'8: 	!!%6vhiu#M"N(,)3)3):):< !26(#>?$(T%/__%/%6%68 ""$J#K)-$*4//*4*;*;= ""I;d6:*4//*4*;*;= $//1r'    N)__name__
__module____qualname____firstlineno____doc__r%   r4   r   r   r   r   __static_attributes__rh   r'   r$   r   r      s&    7$$F2r'   r   )r8   rH   r   r   syscoloramar   r   r   r   r   rh   r'   r$   <module>rq      sD    	  "  ) ) 	%x x  xr'   