o
    w7e2	                     @   s~   d dl Z d dlmZmZ d dlmZ d dlmZmZm	Z	 e
eZedede	diZdd	 Zd
d Zdd ZG dd deZdS )    N)logutil)Handler)
PER_ALWAYSPER_INSTANCEPER_ONCEzper-bootzper-instancezper-oncec                 C   s   dt |   }|S )Nztext/x-shellscript-)path_map)freq	mime_type r   N/usr/lib/python3/dist-packages/cloudinit/handlers/shell_script_by_frequency.pyget_mime_type_by_frequency   s   r   c                 C   s   t |  }tj||}|S )z]Return the frequency-specific subfolder for a given frequency constant
    and parent folder.)r   ospathjoin)r	   scripts_dirfreqPathfolderr   r   r   get_script_folder_by_frequency   s   r   c                 C   sJ   t j| }t|}t||}t j||}t|}t||d dS )z|Given a filename, a payload, a frequency, and a scripts folder, write
    the payload to the correct frequency-specific pathi  N)	r   r   basenamer   clean_filenamer   r   dos2unix
write_file)script_pathpayload	frequencyr   filenamer   r   r   r   r   write_script_by_frequency"   s   


r   c                   @   s    e Zd ZdZdd Zdd ZdS )ShellScriptByFreqPartHandlerz=Common base class for the frequency-specific script handlers.c                 K   sJ   t | t t|g| _|| _|d| _d|v r#||d | _d S d S )Nscriptsr   )r   __init__r   r   prefixesscript_frequency	get_cpathr   )selfr"   paths_kwargsr   r   r   r    0   s   z%ShellScriptByFreqPartHandler.__init__c                 C   s8   |d urt j|}t|}t||| j| j d S d S )N)r   r   r   r   r   r   r"   r   )r$   datactyper   r   r   r   r   r   r   handle_part8   s   
z(ShellScriptByFreqPartHandler.handle_partN)__name__
__module____qualname____doc__r    r)   r   r   r   r   r   -   s    r   )r   	cloudinitr   r   cloudinit.handlersr   cloudinit.settingsr   r   r   	getLoggerr*   LOGr   r   r   r   r   r   r   r   r   <module>   s    
