Skip to content

Latest commit

 

History

History
298 lines (241 loc) · 8.18 KB

README.md

File metadata and controls

298 lines (241 loc) · 8.18 KB

Ansible Role: Resume Viewer

Build Status

Ansible role for resume viewing.

As an example, click the link below for my resume.

asciicast

Requirements

None.

Role Variables

Variable specifications are listed below (see also default/main.yml):

  • resume_view_resume
    • description: The structured resume data to be viewed
    • aliases:
      • resume
    • required: true
    • type: dict
    • defaults:
{
  'contact': {
    'first_name': '<first_name>',
    'middle_name': '<middle_name>',
    'last_name': '<last_name>',
    'phone': '<phone>',
    'email': '<email>',
    'linkedin': '<linkedin>',
    'github': '<github>'
  },
  'summary': '<This is an example summary sentence. This is an example summary sentence. This is an example summary sentence. This is an example summary sentence.>',
  'experience': [
    {
      'title': '<title>',
      'company': '<company>',
      'location': '<location>',
      'start_date': '<start_date>',
      'end_date': '<end_date>',
      'description':
        [
          'This is an example description sentence.',
          'This is an example description sentence. This is an example description sentence. This is an example description sentence.',
          'This is an example description sentence. This is an example description sentence.'
        ]
    },
    {
      'title': '<title>',
      'company': '<company>',
      'location': '<location>',
      'start_date': '<start_date>',
      'end_date': '<end_date>',
      'description':
        [
          'This is an example description sentence.',
          'This is an example description sentence. This is an example description sentence. This is an example description sentence.',
          'This is an example description sentence. This is an example description sentence.'
        ]
    },
    {
      'title': '<title>',
      'company': '<company>',
      'location': '<location>',
      'start_date': '<start_date>',
      'end_date': '<end_date>',
      'description':
        [
          'This is an example description sentence.',
          'This is an example description sentence. This is an example description sentence. This is an example description sentence.',
          'This is an example description sentence. This is an example description sentence.'
        ]
    }
  ]
}
  • resume_viewer_title_header_template
    • description: The template used when rendering the title header.
    • aliases: None.
    • required: false
    • type: str
    • defaults:
  {{ [ resume_viewer_resume.contact.first_name,
       resume_viewer_resume.contact.middle_name,
       resume_viewer_resume.contact.last_name] | 
       select('string') |
       join(' ') }}
  • resume_viewer_title_body_template
    • description: The template used when rendering the title body.
    • aliases: None.
    • required: false
    • type: str
    • defaults:
"{{ omit }}"
  • resume_viewer_summary_header_template
    • description: The template used when rendering the summary header.
    • aliases: None.
    • required: false
    • type: str
    • defaults:
Summary
  • resume_viewer_summary_body_template
    • description: The template used when rendering the summary body.
    • aliases: None.
    • required: false
    • type: str
    • defaults:
  {{  resume_viewer_resume.summary | wordwrap(60) | indent(4, first=True) }}
  • resume_viewer_experience_header_template
    • description: The template used when rendering the experience header.
    • aliases: None.
    • required: false
    • type: str
    • defaults:
Experience
  • resume_viewer_experience_body_template
    • description: The template used when rendering the experience body. Note: The experience list is iterated through. This template is rendered for each item. Reference the item using the value job.
    • aliases: None.
    • required: false
    • type: str
    • defaults:
  {{ (job.title+' @ '+job.company) | indent(4, first=True) }}
  {{ (job.start_date+' - '+ job.end_date) | indent(4, first=True) }}
  {{ job.location | indent(4, first=True) }}
  {{ '------------------------------------------------------------------------' | indent(4, first=True) }}
  
  {% for item in job.description %}
      - {{ item | wordwrap(60) | indent(6) }}

  {% endfor %}
  • resume_viewer_contact_header_template
    • description: The template used when rendering the contact header.
    • aliases: None.
    • required: false
    • type: str
    • defaults:
Contact Information
  • resume_viewer_contact_body_template
    • description: The template used when rendering the contact body.
    • aliases: None.
    • required: false
    • type: str
    • defaults:
  {% for key, value in resume_viewer_resume.contact.items() %}
  {% if key in ['mobile', 'email', 'linkedin', 'github'] %}
  {{ "- %-10s: %s" | format((key | capitalize), value) | wordwrap(60) | indent(4, first=True) }}
  {% endif %}
  {% endfor %}

Dependencies

None.

Example Playbook

- hosts: localhost
  gather_facts: false
  roles:
    - theque5t.resume_viewer

Output:

PLAY [localhost] ***************************************************************

TASK [theque5t.resume_viewer : <first_name> <middle_name> <last_name>] *********
[theque5t.resume_viewer : <first_name> <middle_name> <last_name>]
Press enter to continue, Ctrl+C to interrupt:
ok: [localhost]

TASK [theque5t.resume_viewer : Summary] ****************************************
[theque5t.resume_viewer : Summary]

    <This is an example summary sentence. This is an example
    summary sentence. This is an example summary sentence. This
    is an example summary sentence.>
:
ok: [localhost]

TASK [theque5t.resume_viewer : Experience] *************************************
[theque5t.resume_viewer : Experience]

    <title> @ <company>
    <start_date> - <end_date>
    <location>
    ------------------------------------------------------------------------

    - This is an example description sentence.

    - This is an example description sentence. This is an example
      description sentence. This is an example description
      sentence.

    - This is an example description sentence. This is an example
      description sentence.

:
^Mok: [localhost] => (item=)
[theque5t.resume_viewer : Experience]

    <title> @ <company>
    <start_date> - <end_date>
    <location>
    ------------------------------------------------------------------------

    - This is an example description sentence.

    - This is an example description sentence. This is an example
      description sentence. This is an example description
      sentence.

    - This is an example description sentence. This is an example
      description sentence.

:
^Mok: [localhost] => (item=)
[theque5t.resume_viewer : Experience]

    <title> @ <company>
    <start_date> - <end_date>
    <location>
    ------------------------------------------------------------------------

    - This is an example description sentence.

    - This is an example description sentence. This is an example
      description sentence. This is an example description
      sentence.

    - This is an example description sentence. This is an example
      description sentence.

:
ok: [localhost] => (item=)

TASK [theque5t.resume_viewer : Contact Information] ****************************
[theque5t.resume_viewer : Contact Information]

    - Linkedin  : <linkedin>
    - Github    : <github>
    - Email     : <email>
:
ok: [localhost]

PLAY RECAP *********************************************************************
localhost                  : ok=4    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

License

MIT

Author Information

This role was created in 2020 by Trevor Highfill(@theque5t).