Your IP : 216.73.217.13


Current Path : /lib/python3/dist-packages/cloudinit/config/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/cloudinit/config/__pycache__/cc_runcmd.cpython-38.pyc

U

�Ad��	@s�UdZddlZddlmZddlmZddlmZddlm	Z	ddl
mZddlm
Z
mZdd	lmZdd
lmZdZdd
deegeed�gdgd�Ze
ed<ee�Zeee	eedd�dd�ZdS)zERuncmd: run arbitrary commands at rc.local with output to the console�N)�Logger)�dedent)�util)�Cloud)�Config)�
MetaSchema�get_meta_doc)�ALL_DISTROS)�PER_INSTANCEaRun arbitrary commands at a rc.local like time-frame with output to the
console. Each item can be either a list or a string. The item type affects
how it is executed:


* If the item is a string, it will be interpreted by ``sh``.
* If the item is a list, the items will be executed as if passed to execve(3)
  (with the first arg as the command).

Note that the ``runcmd`` module only writes the script to be run
later. The module that actually runs the script is ``scripts-user``
in the :ref:`Final<boot-Final>` boot stage.

.. note::

    all commands must be proper yaml, so you have to quote any characters
    yaml would eat (':' can be problematic)

.. note::

    when writing files, do not use /tmp dir as it races with
    systemd-tmpfiles-clean LP: #1707222. Use /run/somedir instead.
Z	cc_runcmdZRuncmdzRun arbitrary commandsa        runcmd:
            - [ ls, -l, / ]
            - [ sh, -xc, "echo $(date) ': hello world!'" ]
            - [ sh, -c, echo "=========hello world'=========" ]
            - ls -l /root
            - [ wget, "http://example.org", -O, /tmp/index.html ]
    �runcmd)�id�name�titleZdescriptionZdistrosZ	frequencyZexamplesZactivate_by_schema_keys�meta)r
�cfg�cloud�log�args�returnc	
Cs�d|kr|�d|�dStj�|�d�d�}|d}zt�|�}t�||d�Wn6tk
r�}zt	|�d�
||���W5d}~XYnXdS)Nrz:Skipping module named %s, no 'runcmd' key in configurationZscriptsi�z"Failed to shellify {} into file {})�debug�os�path�joinZ	get_ipathrZshellifyZ
write_file�	Exception�type�format)	r
rrrrZout_fn�cmdZcontent�e�r�</usr/lib/python3/dist-packages/cloudinit/config/cc_runcmd.py�handleOs�
r )�__doc__rZloggingr�textwraprZ	cloudinitrZcloudinit.cloudrZcloudinit.configrZcloudinit.config.schemarrZcloudinit.distrosr	Zcloudinit.settingsr
ZMODULE_DESCRIPTIONr�__annotations__�str�listr rrrr�<module>	s<	����