bootstrap-vz/bootstrapvz/plugins/commands
Anders Ingemann f62c8ade99 Convert indentation from tabs to spaces (4)
Up until now I didn't see the point of using spaces for indentation.
However, the previous commit (a18bec3) was quite eye opening.
Given that python is an indentation aware language, the amount of
mistakes that went unnoticed because tabs and spaces were used
at the same time (tabs for indentation and spaces for alignment)
were unacceptable.

E101,W191 have been re-enable in the tox flake8 checker and
the documentation has been modified accordingly.

The following files have been left as-is:
* bootstrapvz/common/assets/extlinux/extlinux.conf
* bootstrapvz/common/assets/init.d/expand-root
* bootstrapvz/common/assets/init.d/generate-ssh-hostkeys
* bootstrapvz/common/assets/init.d/squeeze/generate-ssh-hostkeys
* bootstrapvz/plugins/docker_daemon/assets/init.d/docker
* bootstrapvz/providers/ec2/assets/bin/growpart
* bootstrapvz/providers/ec2/assets/grub.d/40_custom
* bootstrapvz/providers/ec2/assets/init.d/ec2-get-credentials
* bootstrapvz/providers/ec2/assets/init.d/ec2-run-user-data
* docs/_static/taskoverview.coffee
* docs/_static/taskoverview.less
* tests/unit/subprocess.sh
2016-06-04 11:38:16 +02:00
..
__init__.py Convert indentation from tabs to spaces (4) 2016-06-04 11:38:16 +02:00
manifest-schema.yml Fix mentions to the commands plugin name 2015-05-02 13:12:33 -03:00
README.rst Fix code block example in commands plugin documentation 2016-05-22 09:14:31 +02:00
tasks.py Convert indentation from tabs to spaces (4) 2016-06-04 11:38:16 +02:00

Commands
--------------

This plugin allows you to run arbitrary commands during the bootstrap process.
The commands are run at an indeterminate point *after* packages have been
installed, but *before* the volume has been unmounted.

Settings
~~~~~~~~

-  ``commands``: A list of lists containing strings. Each top-level item
   is a single command, while the strings inside each list comprise
   parts of a command. This allows for proper shell argument escaping.
   To circumvent escaping, simply put the entire command in a single
   string, the command will additionally be evaluated in a shell
   (e.g. globbing will work).
   In addition to the manifest variables ``{root}`` is also available.
   It points at the root of the image volume.
   ``required``
   ``manifest vars``

Example
~~~~~~~

Create an empty `index.html` in `/var/www` and delete all locales except english.

.. code-block:: yaml

  commands:
    commands:
      - [touch, '{root}/var/www/index.html']
      - ['rm -rf /usr/share/locale/[^en]*']