o
    ¦®Øf‹  ã                   @   s&   d d„ Z dd„ Zdd„ Zd	dd„ZdS )
c                 C   ó   | |   ¡ ksJ ‚d| |f S )z6Return a udev comparison clause, like `ACTION=="add"`.z%s=="%s"©Úupper©ÚkeyÚvalue© r   ú4/usr/lib/python3/dist-packages/cloudinit/net/udev.pyÚcompose_udev_equality   ó   r	   c                 C   r   )zBReturn a udev attribute comparison clause, like `ATTR{type}=="1"`.zATTR{%s}=="%s")Úlower)Ú	attributer   r   r   r   Úcompose_udev_attr_equality   r
   r   c                 C   r   )z4Return a udev assignment clause, like `NAME="eth0"`.z%s="%s"r   r   r   r   r   Úcompose_udev_setting   r
   r   Nc              	   C   sB   |sd}d  tddƒtddƒtd|ƒtd|ƒtd	| ƒg¡}d
| S )zïReturn a udev rule to set the name of network interface with `mac`.

    The rule ends up as a single line looking something like:

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",
    ATTR{address}="ff:ee:dd:cc:bb:aa", NAME="eth0"
    z?*z, Ú	SUBSYSTEMÚnetÚACTIONÚaddÚDRIVERSÚaddressÚNAMEz%s
)Újoinr	   r   r   )Ú	interfaceÚmacÚdriverÚruler   r   r   Úgenerate_udev_rule   s   ûÿ	r   )N)r	   r   r   r   r   r   r   r   Ú<module>   s   