---

- include_role:
    name: evolix/remount-usr
  when: repository_path is search ("/usr")

- name: "{{ repository_path }} is versioned with git"
  command: "git init ."
  args:
    chdir: "{{ repository_path }}"
    creates: "{{ repository_path }}/.git/"
    warn: no
  register: git_init
  tags:
    - etc-git

- name: Git user.email is configured
  git_config:
    name: user.email
    repo: "{{ repository_path }}"
    scope: local
    value: "root@{{ ansible_fqdn | default('localhost') }}"
  tags:
    - etc-git

- name: "{{ repository_path }}/.git is restricted to root"
  file:
    path: "{{ repository_path }}/.git"
    owner: root
    mode: "0700"
    state: directory
  tags:
    - etc-git

- name: "{{ repository_path }}/.gitignore is present"
  copy:
    src: gitignore
    dest: "{{ repository_path }}/.gitignore"
    owner: root
    mode: "0600"
    force: no
  tags:
    - etc-git

- name: "Some entries MUST be in the {{ repository_path }}/.gitignore file"
  lineinfile:
    dest: "{{ repository_path }}/.gitignore"
    line: "{{ item }}"
  loop: "{{ gitignore_items | default([]) }}"
  tags:
    - etc-git

- name: "does {{ repository_path }}/ have any commit?"
  command: "git log"
  args:
    chdir: "{{ repository_path }}"
    warn: no
  changed_when: False
  failed_when: False
  register: git_log
  check_mode: no
  tags:
    - etc-git

- name: initial commit is present?
  shell: "git add -A . && git commit -m \"Initial commit via Ansible\""
  args:
    chdir: "{{ repository_path }}"
    warn: no
  register: git_commit
  when: git_log.rc != 0 or (git_init is defined and git_init is changed)
  tags:
    - etc-git