3 \me@ @sddlZddlZddlmZddlmZddlmZmZm Z ej e Z edede diZ dd Zd d Zd d ZGdddeZdS)N)util)Handler) PER_ALWAYS PER_INSTANCEPER_ONCEzper-bootz per-instancezper-oncecCsdt|}|S)Nztext/x-shellscript-)path_map)freqZ mime_typer //usr/lib/python3.6/shell_script_by_frequency.pyget_mime_type_by_frequencysr cCst|}tjj||}|S)z]Return the frequency-specific subfolder for a given frequency constant and parent folder.)rospathjoin)r scripts_dirZfreqPathfolderr r r get_script_folder_by_frequencysrcCsJtjj|}tj|}t||}tjj||}tj|}tj||ddS)z|Given a filename, a payload, a frequency, and a scripts folder, write the payload to the correct frequency-specific pathiN) r r basenamerclean_filenamerrZdos2unixZ write_file) script_pathpayload frequencyrfilenamerr r r r write_script_by_frequency#s     rc@s eZdZdZddZddZdS)ShellScriptByFreqPartHandlerz=Common base class for the frequency-specific script handlers.cKsFtj|tt|g|_||_|jd|_d|krB|j|d|_dS)Nscriptsr)r__init__rr prefixesscript_frequencyZ get_cpathr)selfrpathsZ_kwargsr r r r1s    z%ShellScriptByFreqPartHandler.__init__cCs4|dk r0tjj|}tj|}t|||j|jdS)N)r r rrrrrr)rdataZctyperrrrr r r handle_part9s   z(ShellScriptByFreqPartHandler.handle_partN)__name__ __module__ __qualname____doc__rr!r r r r r.sr)Zloggingr Z cloudinitrZcloudinit.handlersrZcloudinit.settingsrrrZ getLoggerr"ZLOGrr rrrr r r r s