---

# ---
# Check if local template directories exists
# ---

# default_users
- name: (users-systemfiles.yml) Check if local template directory exists for default users
  local_action: stat path={{ inventory_dir }}/files/homedirs/{{ item.name }}
  with_items: "{{ default_user }}"
  loop_control:
    label: '{{ item.name }}'
  register: local_template_dir_default_user

# root
- name: (users-systemfiles.yml) Check if local template directory exists for root
  local_action: stat path={{ inventory_dir }}/files/homedirs/root
  register: local_template_dir_root

# --
# Copy .bashrc
# ---

- name: (users-systemfiles.yml) Check if users file '.bashrc.ORIG' exists
  stat:
    path: "~{{ item.name }}/.bashrc.ORIG"
  register: bashrc_user_orig_exists
  loop: "{{ default_user }}"
  loop_control:
    label: '{{ item.name }}'
  tags:
    - bash

- name: (users-systemfiles.yml) Backup existing users .bashrc file
  command: cp -a ~{{ item.item.name }}/.bashrc ~{{ item.item.name }}/.bashrc.ORIG
  loop: "{{ bashrc_user_orig_exists.results }}"
  loop_control:
    label: '{{ item.item.name }}'
  when: item.stat.exists == False
  tags:
    - bash

- name: (users-systemfiles.yml) copy .bashrc if it exists
  copy: 
    src: "{{ lookup('fileglob', inventory_dir + '/files/homedirs/' + item.item.name + '/_bashrc') }}"
    dest: "~{{ item.item.name }}/.bashrc"
    owner: "{{ item.item.name }}"
    group: "{{ item.item.name }}"
    mode: 0644
  loop: "{{ local_template_dir_default_user.results }}"
  loop_control:
    label: '{{ item.item.name }}'
  when:
    - item.stat.exists
    - lookup('fileglob', inventory_dir + '/files/homedirs/' + item.item.name + '/_bashrc')
  tags:
    - bash

- name: (users-systemfiles.yml) Check if file '/root/.bashrc.ORIG' exists
  stat:
    path: /root/.bashrc.ORIG
  register: bashrc_root_orig_exists
  tags:
    - bash

- name: (users-systemfiles.yml) Backup /root/.bashrc file
  command: cp /root/.bashrc /root/.bashrc.ORIG
  when: bashrc_root_orig_exists.stat.exists == False 
  tags:
    - bash

- name: (users-systemfiles.yml) copy .bashrc for user root
  copy: 
    src: "{{ lookup('fileglob', inventory_dir + '/files/homedirs/root/_bashrc') }}"
    dest: "/root/.bashrc"
    owner: root
    group: root
    mode: 0644
  when: 
    - local_template_dir_root.stat.exists
    - lookup('fileglob', inventory_dir + '/files/homedirs/root/_bashrc')
  tags:
    - bash

# --
# Copy .profile (Debian System)
# ---

- name: (users-systemfiles.yml) Check if users file '.profile.ORIG' exists
  stat:
    path: "~{{ item.name }}/.profile.ORIG"
  register: profile_user_orig_exists
  loop: "{{ default_user }}"
  loop_control:
    label: '{{ item.name }}'
  when:
    - ansible_facts['distribution'] == "Debian"
  tags:
    - profile

- name: (users-systemfiles.yml) Backup existing users .profile file
  command: cp -a ~{{ item.item.name }}/.profile ~{{ item.item.name }}/.profile.ORIG
  loop: "{{ profile_user_orig_exists.results }}"
  loop_control:
    label: '{{ item.item.name }}'
  when:
    - ansible_facts['distribution'] == "Debian"
    - item.stat.exists == False
  tags:
    - profile
    
- name: (users-systemfiles.yml) copy .profile if it exists
  copy: 
    src: "{{ lookup('fileglob', inventory_dir + '/files/homedirs/' + item.item.name + '/_profile') }}"
    dest: "~{{ item.item.name }}/.profile"
    owner: "{{ item.item.name }}"
    group: "{{ item.item.name }}"
    mode: 0644
  loop: "{{  local_template_dir_default_user.results }}"
  loop_control:
    label: '{{ item.item.name }}'
  when:
    - ansible_facts['distribution'] == "Debian"
    - item.stat.exists
    - lookup('fileglob', inventory_dir + '/files/homedirs/' + item.item.name + '/_profile')
  tags:
    - profile

- name: (users-systemfiles.yml) Check if file '/root/.profile.ORIG' exists
  stat:
    path: /root/.profile.ORIG
  register: profile_root_orig_exists
  when:
    - ansible_facts['distribution'] == "Debian"
  tags:
    - profile

- name: (users-systemfiles.yml) Backup existing users .profile file
  command: cp -a /root/.profile /root/.profile.ORIG
  when:
    - ansible_facts['distribution'] == "Debian"
    - profile_root_orig_exists.stat.exists == False
  tags:
    - profile

- name: (users-systemfiles.yml) copy .profile for user root
  copy: 
    src: "{{ lookup('fileglob', inventory_dir + '/files/homedirs/root/_profile') }}"
    dest: "/root/.profile"
    owner: root
    group: root
    mode: 0644
  when: 
    - ansible_facts['distribution'] == "Debian"
    - local_template_dir_root.stat.exists
    - lookup('fileglob', inventory_dir + '/files/homedirs/root/_profile')
  tags:
    - profile

# --
# Copy .bash_profile (CentOS/Fedora?/RedHat? System)
# ---

- name: (users-systemfiles.yml) Check if users file '.bash_profile.ORIG' exists
  stat:
    path: "~{{ item.name }}/.bash_profile.ORIG"
  register: bash_profile_user_orig_exists
  loop: "{{ default_user }}"
  loop_control:
    label: '{{ item.name }}'
  when:
    - ansible_facts['distribution'] == "CentOS"
  tags:
    - profile

- name: (users-systemfiles.yml) Backup existing users .bash_profile file
  command: cp -a ~{{ item.item.name }}/.bash_profile ~{{ item.item.name }}/.bash_profile.ORIG
  loop: "{{ bash_profile_user_orig_exists.results }}"
  loop_control:
    label: '{{ item.item.name }}'
  when:
    - ansible_facts['distribution'] == "CentOS"
    - item.stat.exists == False
  tags:
    - profile
    
- name: (users-systemfiles.yml) copy .bash_profile if it exists
  copy: 
    src: "{{ lookup('fileglob', inventory_dir + '/files/homedirs/' + item.item.name + '/_bash_profile') }}"
    dest: "~{{ item.item.name }}/.bash_profile"
    owner: "{{ item.item.name }}"
    group: "{{ item.item.name }}"
    mode: 0644
  loop: "{{  local_template_dir_default_user.results }}"
  loop_control:
    label: '{{ item.item.name }}'
  when:
    - ansible_facts['distribution'] == "CentOS"
    - item.stat.exists
    - lookup('fileglob', inventory_dir + '/files/homedirs/' + item.item.name + '/_bash_profile')
  tags:
    - profile


- name: (users-systemfiles.yml) Check if file '/root/.bash_profile.ORIG' exists
  stat:
    path: /root/.bash_profile.ORIG
  register: profile_root_orig_exists
  when:
    - ansible_facts['distribution'] == "CentOS"
  tags:
    - profile

- name: (users-systemfiles.yml) Backup existing users .bash_profile file
  command: cp -a /root/.bash_profile /root/.bash_profile.ORIG
  when:
    - ansible_facts['distribution'] == "CentOS"
    - profile_root_orig_exists.stat.exists == False
  tags:
    - profile

- name: (users-systemfiles.yml) copy .bash_profile for user root
  copy: 
    src: "{{ lookup('fileglob', inventory_dir + '/files/homedirs/root/_bash_profile') }}"
    dest: "/root/.bash_profile"
    owner: root
    group: root
    mode: 0644
  when: 
    - ansible_facts['distribution'] == "CentOS"
    - local_template_dir_root.stat.exists
    - lookup('fileglob', inventory_dir + '/files/homedirs/root/_bash_profile')
  tags:
    - profile
    
# --
# Copy .vimrc
# ---

- name: (users-systemfiles.yml) copy .vimrc if it exists
  copy: 
    src: "{{ lookup('fileglob', inventory_dir + '/files/homedirs/' + item.item.name + '/_vimrc') }}"
    dest: "~{{ item.item.name }}/.vimrc"
    owner: "{{ item.item.name }}"
    group: "{{ item.item.name }}"
    mode: 0644
  loop: "{{  local_template_dir_default_user.results }}"
  loop_control:
    label: '{{ item.item.name }}'
  when:
    - item.stat.exists
    - lookup('fileglob', inventory_dir + '/files/homedirs/' + item.item.name + '/_vimrc')
  tags:
    - vim

- name: (users-systemfiles.yml) Check if .vim directory exists for default users
  local_action: stat path={{ inventory_dir }}/files/homedirs/{{ item.name }}/.vim
  with_items: "{{ default_user }}"
  loop_control:
    label: '{{ item.name }}'
  register: local_template_dir_dotvim_default_user

- name: (users-systemfiles.yml) copy .vim directory if it exists
  copy: 
    src: "{{ inventory_dir + '/files/homedirs/' + item.item.name + '/.vim' }}"
    dest: "~{{ item.item.name }}"
    owner: "{{ item.item.name }}"
    group: "{{ item.item.name }}"
    mode: 0644
  with_items: "{{ local_template_dir_dotvim_default_user.results }}"
  loop_control:
    label: '{{ item.item.name }}'
  when:
    - item.stat.exists
  tags:
    - vim

- name: (users-systemfiles.yml) copy .vimrc for user root
  copy: 
    src: "{{ lookup('fileglob', inventory_dir + '/files/homedirs/root/_vimrc') }}"
    dest: "/root/.vimrc"
    owner: root
    group: root
    mode: 0644
  when:
    - local_template_dir_root.stat.exists
    - lookup('fileglob', inventory_dir + '/files/homedirs/root/_vimrc')
  tags:
    - vim


- name: (users-systemfiles.yml) Check if local template directory .vim  exists for user root
  local_action: stat path={{ inventory_dir }}/files/homedirs/root/.vim
  register: local_template_dir_vim_root
  with_items: 'root'
  loop_control:
    label: 'root'

- name: (users-systemfiles.yml) copy .vim directory for user root if it exists
  copy: 
    src: "{{ inventory_dir + '/files/homedirs/root/.vim' }}"
    dest: "/root"
    owner: "root"
    group: "root"
    mode: 0644
  with_items: "{{ local_template_dir_vim_root.results }}"
  loop_control:
    label: 'root'
  when:
    - item.stat.exists
  tags:
    - vim
