
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
\me@	                 @   s   d dl Z d dlZd dlmZ d dlmZ d dlmZmZm	Z	 e j
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)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)freqZ	mime_type r	   //usr/lib/python3.6/shell_script_by_frequency.pyget_mime_type_by_frequency   s    r   c             C   s   t |  }tjj||}|S )z]Return the frequency-specific subfolder for a given frequency constant
    and parent folder.)r   ospathjoin)r   scripts_dirZfreqPathfolderr	   r	   r
   get_script_folder_by_frequency   s    r   c             C   sJ   t jj| }tj|}t||}t jj||}tj|}tj||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   Zdos2unixZ
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   sF   t j| t t|g| _|| _|jd| _d|krB|j|d | _d S )Nscriptsr   )r   __init__r   r   prefixesscript_frequencyZ	get_cpathr   )selfr   pathsZ_kwargsr	   r	   r
   r   1   s    z%ShellScriptByFreqPartHandler.__init__c             C   s4   |d k	r0t jj|}tj|}t||| j| j d S )N)r   r   r   r   r   r   r   r   )r   dataZctyper   r   r   r   r	   r	   r
   handle_part9   s
    
z(ShellScriptByFreqPartHandler.handle_partN)__name__
__module____qualname____doc__r   r!   r	   r	   r	   r
   r   .   s   r   )Zloggingr   Z	cloudinitr   Zcloudinit.handlersr   Zcloudinit.settingsr   r   r   Z	getLoggerr"   ZLOGr   r   r   r   r   r	   r	   r	   r
   <module>   s   
