mirror of
https://github.com/servo/servo.git
synced 2025-08-02 04:00:32 +01:00
Update mach from gecko tree
This commit is contained in:
parent
9897125b34
commit
f1641fde8f
18 changed files with 785 additions and 520 deletions
51
python/mach/docs/driver.rst
Normal file
51
python/mach/docs/driver.rst
Normal file
|
@ -0,0 +1,51 @@
|
|||
.. _mach_driver:
|
||||
|
||||
=======
|
||||
Drivers
|
||||
=======
|
||||
|
||||
Entry Points
|
||||
============
|
||||
|
||||
It is possible to use setuptools' entry points to load commands
|
||||
directly from python packages. A mach entry point is a function which
|
||||
returns a list of files or directories containing mach command
|
||||
providers. e.g.:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
def list_providers():
|
||||
providers = []
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
for p in os.listdir(here):
|
||||
if p.endswith('.py'):
|
||||
providers.append(os.path.join(here, p))
|
||||
return providers
|
||||
|
||||
See http://pythonhosted.org/setuptools/setuptools.html#dynamic-discovery-of-services-and-plugins
|
||||
for more information on creating an entry point. To search for entry
|
||||
point plugins, you can call
|
||||
:py:meth:`mach.main.Mach.load_commands_from_entry_point`. e.g.:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
mach.load_commands_from_entry_point("mach.external.providers")
|
||||
|
||||
Adding Global Arguments
|
||||
=======================
|
||||
|
||||
Arguments to mach commands are usually command-specific. However,
|
||||
mach ships with a handful of global arguments that apply to all
|
||||
commands.
|
||||
|
||||
It is possible to extend the list of global arguments. In your
|
||||
*mach driver*, simply call
|
||||
:py:meth:`mach.main.Mach.add_global_argument`. e.g.:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
mach = mach.main.Mach(os.getcwd())
|
||||
|
||||
# Will allow --example to be specified on every mach command.
|
||||
mach.add_global_argument('--example', action='store_true',
|
||||
help='Demonstrate an example global argument.')
|
Loading…
Add table
Add a link
Reference in a new issue