---
- name: 'Check app requirements for user "{{ owner_name }}".'
  fail:
    msg: You must set owner name.
  when: not owner_name

- name: 'Create group "{{ owner_group }}".'
  group:
    name: '{{ owner_group }}'
    state: present

- name: 'Create user "{{ owner_name }}".'
  user:
    name: '{{ owner_name }}'
    group: '{{ owner_group }}'
    groups: '{{ owner_extra_groups }}'
    shell: /bin/bash

- name: 'Set up user ssh keys for user "{{ owner_name }}".'
  authorized_key:
    user: '{{ owner_name }}'
    key: '{{ item }}'
    state: present
  with_items: '{{ owner_ssh_keys }}'
  when: owner_ssh_keys

- name: 'Set up environment variables for user "{{ owner_name }}".'
  template:
    src: env.j2
    dest: '/home/{{ owner_name }}/.env'
    owner: '{{ owner_name }}'
    group: '{{ owner_group }}'
  tags:
    - env

- name: 'Remove absent environment variables for user "{{ owner_name }}" from bashrc.'
  lineinfile:
    path: '/home/{{ owner_name }}/.bashrc'
    regexp: '^export {{ item.key }}='
    state: absent
  with_dict: '{{ owner_env }}'
  tags:
    - env

- name: 'Include environment variables for user "{{ owner_name }}" in bashrc.'
  lineinfile:
    path: '/home/{{ owner_name }}/.bashrc'
    regexp: '^export \$\(grep -v'
    line: 'export $(grep -v "^#" "$HOME"/.env | xargs)'
  tags:
    - env