#!/usr/bin/env python3
#
# Format a spec
#

import pscheduler

from validate import spec_is_valid
from validate import MAX_SCHEMA

TEMPLATE='''
{% if _mime_type == 'text/plain' %}

Host ............. {{ unspec(host) }}
Host Node ........ {{ unspec(hostnode) }}
URL .............. {{ unspec(url) }}
IP Version ....... {{ unspec(ipversion) }}
{% if headers is defined -%}
Headers:   (May be missing hyphens)
{#- TODO: The hyphens get deleted from the keys. #}
{%- for header in headers %}
  {{ header }}: {{ headers[header] }}
{%- endfor %}
{%- else -%}
Headers .......... {{ unspec(not_specified) }}
{%- endif %}
Parse ............ {{ unspec(parse) }}
Timeout .......... {{ unspec(timeout) }}
Always Succeed ... {{ unspec(alwayssucceed) }}
Keep Content ..... {{ unspec(keepcontent) }}

{% elif _mime_type == 'text/html' %}
<table>
<tr><td>Host</td><td>{{ unspec(host) }}</td></tr>
<tr><td>Host Node</td><td>{{ unspec(hostnode) }}</td></tr>
<tr><td>URL</td><td>{{ unspec(url) }}</td></tr>
<tr><td>IP Version</td><td>{{ unspec(ipversion) }}</td></tr>
<tr><td>Headers</td><td>
{% if headers is defined -%}
(May be missing hyphens)
{#- TODO: The hyphens get deleted from the keys. #}
<ul>
{%- for header in headers %}
<li>{{ header }}: {{ headers[header] }}</li>
{%- endfor %}
</ul>
{%- else -%}
{{ unspec(not_specified) }}
{%- endif %}
</td></tr>
<tr><td>Parse</td><td>{{ unspec(parse) }}</td></tr>
<tr><td>Timeout</td><td>{{ unspec(timeout) }}</td></tr>
<tr><td>Always Succeed</td><td>{{ unspec(alwayssucceed) }}</td></tr>
<tr><td>Keep Content</td><td>{{ unspec(keepcontent) }}</td></tr>
</table>

{% else %}

{{ error('Unsupported MIME type "' + _mime_type + '"') }}

{% endif %}
'''

pscheduler.spec_format_method(TEMPLATE, max_schema=MAX_SCHEMA, validator=spec_is_valid)
