spyglass/doc/source/cli.rst

263 lines
7.1 KiB
ReStructuredText

============
Spyglass CLI
============
The Spyglass CLI is used in conjunction with the script ``tools/spyglass.sh``.
.. note::
The default workspace for the ``spyglass.sh`` script is ``/workspace``. The
examples below require that this workspace be used.
CLI Options
===========
**-v / \\-\\-verbose** (Optional). False by default.
Enable debug logging.
Excel Plugin
************
Commands available under the Excel plugin package.
Generate Intermediary
---------------------
Generates an intermediary file from passed Excel data.
.. code-block:: bash
./spyglass.sh excel intermediary -x <engineering_excel_file> \
-e <excel_spec> \
-c <additional_site_config> \
-s <site_name>
Options
^^^^^^^
**-d / \\-\\-intermediary-dir** (Optional).
Path where the intermediary file will be created. Must be a writeable
directory.
**-x / \\-\\-excel-file** (Required for Excel plugin).
Path to the engineering Excel file. Multiple files can be included, provided
they follow the same specification. Must be readable file(s) in a Microsoft
Excel supported format (.xls, .xslx, etc...).
**-e / \\-\\-excel-spec** (Required for Excel plugin).
Path to the specification YAML that defines the content of the provided
engineering Excel files. Must be a readable file in YAML format.
**-c / \\-\\-site-configuration** (Optional).
Path to site specific configuration YAML. Must be a readable file.
**-r / \\-\\-rule-configuration** (Optional).
Path to rules configuration YAML file. This file defines the rules used for
data manipulation. Default rules are used if no rules YAML is entered.
**\\-\\-intermediary-schema** (Optional).
Path to the intermediary schema to be used for validation.
**\\-\\-no-validation** (Optional).
Skips validation on generated intermediary data.
**-s / \\-\\-site-name** (Optional).
Name of the site for which the intermediary is generated.
Generate Manifests
------------------
Generates manifests from intermediary file created from passed Excel data.
Intermediary data is always generated, but will not be saved unless specified.
.. code-block:: bash
./spyglass.sh excel documents -x <engineering_excel_file> \
-e <excel_spec> -c <additional_site_config> \
-s <site_name> -t <j2_template_directory>
Options
^^^^^^^
**-i / \\-\\-generate-intermediary** (Optional). False by default.
Saves the intermediary file used to make the manifests created by the command.
**-d / \\-\\-intermediary-dir** (Optional).
Path where the intermediary file will be created. Must be a writeable
directory.
**-x / \\-\\-excel-file** (Required for Excel plugin).
Path to the engineering Excel file. Multiple files can be included, provided
they follow the same specification. Must be readable file(s) in a Microsoft
Excel supported format (.xls, .xslx, etc...).
**-e / \\-\\-excel-spec** (Required for Excel plugin).
Path to the specification YAML that defines the content of the provided
engineering Excel files. Must be a readable file in YAML format.
**-c / \\-\\-site-configuration** (Optional).
Path to site specific configuration YAML. Must be a readable file.
**-r / \\-\\-rule-configuration** (Optional).
Path to rules configuration YAML file. This file defines the rules used for
data manipulation. Default rules are used if no rules YAML is entered.
**\\-\\-intermediary-schema** (Optional).
Path to the intermediary schema to be used for validation.
**\\-\\-no-validation** (Optional).
Skips validation on generated intermediary data.
**-s / \\-\\-site-name** (Optional).
Name of the site for which the intermediary is generated.
**-t / \\-\\-template-dir** (Required).
Path to the Jinja2 template files that will be used to generate manifest files.
Must be a readable directory with Jinja2 files using the .j2 extension.
**-m / \\-\\-manifest-dir** (Optional).
Path where generated manifest files should be written. Must be a writeable
directory.
General
*******
Generate Manifests from Intermediary
------------------------------------
Generates manifests using an existing intermediary file. This is a shortcut to
skip intermediary generation if it has already been completed.
.. code-block:: bash
./spyglass.sh mi <intermediary_file> -t <j2_template_directory>
Arguments
^^^^^^^^^
**INTERMEDIARY_FILE** (Required).
Path to an existing intermediary YAML file that can be used to generate
manifests.
Options
^^^^^^^
**-t / \\-\\-template-dir** (Required).
Path to the Jinja2 template files that will be used to generate manifest files.
Must be a readable directory with Jinja2 files using the .j2 extension.
**-m / \\-\\-manifest-dir** (Optional).
Path where generated manifest files should be written. Must be a writeable
directory.
**\\-\\-force** (Optional).
Forces manifests to be written, regardless of undefined data.
Validate Documents
------------------
Validates pegleg documents against their schema.
.. code-block:: bash
spyglass validate -d <DOCUMENT_PATH> -p <SCHEMA_PATH>
Options
^^^^^^^
**-d / \\-\\-document-path**
Path to the document(s) to validate.
**-p / \\-\\-schema-path**
Path to a schema or directory of schema files used to validate documents in
document path.
Examples
========
Running Spyglass with Excel Plugin
**********************************
.. code-block:: bash
spyglass excel documents -i -x <Excel File> -e <Excel Spec> \
-c <Site Config> -s <Site Name> -t <j2 template dir>
Generating intermediary and manifests
-------------------------------------
.. code-block:: bash
spyglass excel documents -i \
-x ../spyglass-plugin-xls/spyglass_plugin_xls/examples/SiteDesignSpec_v0.1.xlsx \
-e ../spyglass-plugin-xls/spyglass_plugin_xls/examples/excel_spec.yaml \
-c spyglass/examples/site_config.yaml \
-s airship-seaworthy -t spyglass/examples/templates/
Generating intermediary without manifests
-----------------------------------------
.. code-block:: bash
spyglass excel intermediary \
-x ../spyglass-plugin-xls/spyglass_plugin_xls/examples/SiteDesignSpec_v0.1.xlsx \
-e ../spyglass-plugin-xls/spyglass_plugin_xls/examples/excel_spec.yaml \
-c spyglass/examples/site_config.yaml \
-s airship-seaworthy
Generating manifests without intermediary
-----------------------------------------
.. code-block:: bash
spyglass excel documents \
-x ../spyglass-plugin-xls/spyglass_plugin_xls/examples/SiteDesignSpec_v0.1.xlsx \
-e ../spyglass-plugin-xls/spyglass_plugin_xls/examples/excel_spec.yaml \
-c spyglass/examples/site_config.yaml \
-s airship-seaworthy -t spyglass/examples/templates/
Generating manifests using intermediary
***************************************
.. code-block:: bash
spyglass mi <intermediary.yaml> -t <j2 template dir>
Where sample `excel_spec.yaml` and `SiteDesignSpec_v0.1.xlsx` can be found in
spyglass-plugin-xls in the `spyglass_plugin_xls/examples` folder. The Jinja2
templates and `site_config.yaml` can be found in the `spyglass/examples`
folder.
Validate Documents
******************
.. code-block:: bash
spyglass validate -d <DOCUMENT_PATH> -p <SCHEMA_PATH>