Current Dir: /snap/core22/2437/usr/lib/python3/dist-packages/cloudinit/cmd/devel/__pycache__/

[FILE] hotplug_hook.cpython-310.pyc [ edit | delete | rename ]
[FILE] logs.cpython-310.pyc [ edit | delete | rename ]
[FILE] make_mime.cpython-310.pyc [ edit | delete | rename ]
[FILE] net_convert.cpython-310.pyc [ edit | delete | rename ]
[FILE] parser.cpython-310.pyc [ edit | delete | rename ]
[FILE] render.cpython-310.pyc [ edit | delete | rename ]
[FILE] __init__.cpython-310.pyc [ edit | delete | rename ]

Viewing: /snap/core22/2437/usr/lib/python3/dist-packages/cloudinit/cmd/devel/__pycache__/make_mime.cpython-310.pyc

o

�t�h�@s�dZddlZddlZddlZddlmZddlmZddlm	Z	m
Z
ddlmZdZ
e�e�ZdZd	d
�Zdefdd
�Z	dde
ejdejfdd�Zddede	efdd�Zdedejdefdd�Zdd�Zedkrse�e��dSdS)z0Generate multi-part mime messages for user-data.�N)�
MIMEMultipart)�MIMEText)�List�Optional)�INCLUSION_TYPES_MAPz	make-mimezUExample: make-mime -a config.yaml:cloud-config -a script.sh:x-shellscript > user-datacCs�g}g}t|�D]8\}\}}}|��}t||t���}|�dd|�|����}	|	t�vr;d|	|df}
|�	|
�|�	|�qt
�}|D]}
|�|
�qF||fS)NzContent-Dispositionzattachment; filename="%s"z3content type %r for attachment %s may be incorrect!�)�	enumerate�readr�sys�getdefaultencoding�
add_header�get_content_type�lower�get_content_types�appendr�attach)�files�sub_messages�errors�i�fh�filename�format_type�contents�sub_message�content_type�msg�combined_message�r�?/usr/lib/python3/dist-packages/cloudinit/cmd/devel/make_mime.py�create_mime_messages(�
�
r �textc
CsRz|�dd�\}}t|d�||��fWSty(}z	t�dd|�|�d}~ww)z@Return file content type by reading the first line of the input.�:r�rNzInvalid value for %r)�split�open�strip�
ValueError�argparse�
ArgumentError)r!rr�errr�file_content_type/s����r+�parser�returnc
Cs^|st��}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--attachrrz<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.)r0r1r3z-fz--forcez$Ignore unknown content-type warnings)r(�ArgumentParser�__doc__�description�EPILOG�epilog�add_argumentr+)r,rrr�
get_parser:s:
�
��r;F�strip_prefixcst�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)�.0�ctype�r<rr�
<listcomp>is��z%get_content_types.<locals>.<listcomp>)�sortedr�valuesrArrArrds

��r�name�argscCs�|jrtd�tdd���dSt|j�\}}|r;|jrdnd}|D]}tj�	|�d|�d��q!tj�	d�|js;d	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.
    �
TrAr�WARNING�ERRORz: z-Invalid content-types, override with --force
r)
�
list_types�print�joinrr r�forcer
�stderr�write)rErFrr�level�errorrrr�handle_argsps	rRcCst���}tt|�S�N)r;�
parse_argsrR�NAME)rFrrr�main�s

rV�__main__rS)F)r6r(�loggingr
�email.mime.multipartr�email.mime.textr�typingrr�cloudinit.handlersrrU�	getLogger�__name__�LOGr8r �strr+r5r;�boolr�	Namespace�intrRrV�exitrrrr�<module>s4
���
�*�
Upload File: