
    x[h@	                         S SK r S SKrS SKJr  S SKJr  S SKJrJrJ	r	  \ R                  " \5      r\S\S\	S0rS rS	 rS
 r " S S\5      rg)    N)util)Handler)
PER_ALWAYSPER_INSTANCEPER_ONCEzper-bootzper-instancezper-oncec                     S[         U     3nU$ )Nztext/x-shellscript-)path_map)freq	mime_types     N/usr/lib/python3/dist-packages/cloudinit/handlers/shell_script_by_frequency.pyget_mime_type_by_frequencyr      s    %htn%56I    c                 V    [         U    n[        R                  R                  X5      nU$ )zYReturn the frequency-specific subfolder for a given frequency constant
and parent folder.)r	   ospathjoin)r
   scripts_dirfreqPathfolders       r   get_script_folder_by_frequencyr      s$     ~HWW\\+0FMr   c                    [         R                  R                  U 5      n[        R                  " U5      n[        X#5      n[         R                  R                  XT5      n[        R                  " U5      n[        R                  " XaS5        g)zxGiven 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   s          r   write_script_by_frequencyr    #   s`     ww,H""8,H+ICF77<<)DmmG$GOOD5)r   c                   $    \ rS rSrSrS rS rSrg)ShellScriptByFreqPartHandler.   z=Common base class for the frequency-specific script handlers.c                     [         R                  " U [        5        [        U5      /U l        Xl        UR                  S5      U l        SU;   a  UR                  US   5      U l        g g )Nscriptsr   )r   __init__r   r   prefixesscript_frequency	get_cpathr   )selfr(   paths_kwargss       r   r&   %ShellScriptByFreqPartHandler.__init__1   s\    z*34DEF 0 ??95G#$w}/EFD $r   c                     UbW  [         R                  R                  U5      n[        R                  " U5      n[        X4U R                  U R                  5        g g )N)r   r   r   r   r   r    r(   r   )r*   datactyper   r   r   r   s          r   handle_part(ShellScriptByFreqPartHandler.handle_part9   sL    "ww''4H**84H%d&;&;T=M=M #r   )r'   r(   r   N)__name__
__module____qualname____firstlineno____doc__r&   r1   __static_attributes__ r   r   r"   r"   .   s    GGr   r"   )loggingr   	cloudinitr   cloudinit.handlersr   cloudinit.settingsr   r   r   	getLoggerr3   LOGr	   r   r   r    r"   r9   r   r   <module>r@      sZ     	  & A A! 
.j
*7 r   