HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/cloudinit/cmd/devel/__pycache__/make_mime.cpython-38.pyc
U

ӇgZ�@s�dZddlZddlZddlZddlmZddlmZddlm	Z	dZ
e�e�Z
dZdd	�Zd
d�Zddd
�Zddd�Zdd�Zdd�Zedkr�e�e��dS)z0Generate multi-part mime messages for user-data.�N)�
MIMEMultipart)�MIMEText)�INCLUSION_TYPES_MAPz	make-mimezUExample: make-mime -a config.yaml:cloud-config -a script.sh:x-shellscript > user-datacCs�g}g}t|�D]p\}\}}}|��}t||t���}|�dd|�|����}	|	t�krvd|	|df}
|�	|
�|�	|�qt
�}|D]}
|�|
�q�||fS)NzContent-Dispositionzattachment; filename="%s"z3content type %r for attachment %s may be incorrect!�)�	enumerate�readr�sys�getdefaultencodingZ
add_headerZget_content_type�lower�get_content_types�appendrZattach)�filesZsub_messages�errors�iZfh�filenameZformat_type�contentsZsub_message�content_type�msg�combined_message�r�?/usr/lib/python3/dist-packages/cloudinit/cmd/devel/make_mime.py�create_mime_messages*�
�
rc
Cs`z&|�dd�\}}t|d�||��fWStk
rZ}zt�|d|�|�W5d}~XYnXdS)z@Return file content type by reading the first line of the input.�:r�rzInvalid value for %rN)�split�open�strip�
ValueError�argparseZ
ArgumentError)�textrr�errr�file_content_type.s��r!c
Cs^|st��}t|_t|_|jdddtdgddd�|jdd	d
ddd
�|jddd
ddd
�|S)aBuild or extend and arg parser for make-mime utility.

    @param parser: Optional existing ArgumentParser instance representing the
        subcommand which will be extended to support the args of this utility.

    @returns: ArgumentParser with proper argument configuration.
    z-az--attachr
rz<file>:<content-type>z3attach the given file as the specified content-type)�dest�type�action�default�metavar�helpz-lz--list-types�
store_trueFz&List support cloud-init content types.)r$r%r'z-fz--forcez$Ignore unknown content-type warnings)r�ArgumentParser�__doc__Zdescription�EPILOGZepilog�add_argumentr!)�parserrrr�
get_parser9s:�
��r.Fcst�fdd�t��D��S)z�Return a list of cloud-init supported content types.  Optionally
    strip out the leading 'text/' of the type if strip_prefix=True.
    cs g|]}�r|�dd�n|�qS)ztext/�)�replace)�.0Zctype�Zstrip_prefixrr�
<listcomp>fs�z%get_content_types.<locals>.<listcomp>)�sortedr�valuesr2rr2rras

��rcCs�|jrtd�tdd���dSt|j�\}}|rv|jr:dnd}|D]}tj�	|�d|�d��qBtj�	d�|jsvd	St|�dS)
a<Create a multi-part MIME archive for use as user-data.  Optionally
       print out the list of supported content types of cloud-init.

    Also setup CLI log handlers to report to stderr since this is a development
    utility which should be run by a human on the CLI.

    @return 0 on success, 1 on failure.
    �
Tr2rZWARNINGZERRORz: z-Invalid content-types, override with --force
r)
Z
list_types�print�joinrrr
Zforcer�stderr�write)�name�argsrr�level�errorrrr�handle_argsms	r?cCst���}tt|�S)N)r.�
parse_argsr?�NAME)r<rrr�main�s
rB�__main__)N)F)r*rZloggingrZemail.mime.multipartrZemail.mime.textrZcloudinit.handlersrrAZ	getLogger�__name__ZLOGr+rr!r.rr?rB�exitrrrr�<module>s$
�
(