HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/cloudinit/config/__pycache__/cc_runcmd.cpython-310.pyc
o

�Ad��@s�UdZddlZddlmZddlmZddlmZddlm	Z	ddl
mZddlm
Z
mZdd	lmZdd
lmZdZdd
deegeed�gdgd�Ze
ed<ee�Zdedede	dededdf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.
�	cc_runcmd�RuncmdzRun 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�title�description�distros�	frequency�examples�activate_by_schema_keys�metar�cfg�cloud�log�args�returnc	
Cs�d|vr|�d|�dStj�|�d�d�}|d}zt�|�}t�||d�WdSty?}z
t	|�d�
||���d}~ww)Nr
z:Skipping module named %s, no 'runcmd' key in configuration�scriptsi�z"Failed to shellify {} into file {})�debug�os�path�join�	get_ipathr�shellify�
write_file�	Exception�type�format)	rrrrr�out_fn�cmd�content�e�r+�</usr/lib/python3/dist-packages/cloudinit/config/cc_runcmd.py�handleOs�
��r-)�__doc__r�loggingr�textwrapr�	cloudinitr�cloudinit.cloudr�cloudinit.configr�cloudinit.config.schemarr�cloudinit.distrosr	�cloudinit.settingsr
�MODULE_DESCRIPTIONr�__annotations__�str�listr-r+r+r+r,�<module>sJ	���������