---
# Should contain only small tools that everyone can't live without
- name: Install basic tools
  when: ansible_os_family == "Debian"
  apt:
    name:
      - bash-completion   # for bash users
      - zsh               # alternative shell
      - sudo              # to gain root access
      - git               # code versioning
      - nano              # basic text editor
      - vim               # like nano but more powerful and complex
      - htop              # better than top
      - less              # i like cats
      - tree              # create a graphical tree of files
      - ipython           # better Python shell
      - acl               # for Ansible become support
    update_cache: true
  register: apt_result
  retries: 3
  until: apt_result is succeeded

# Pimp my server
- name: Customize motd
  copy:
    src: update-motd.d/00-logo
    dest: /etc/update-motd.d/00-logo
    mode: 0755

# Configure APT mirrors on Debian Stretch
- name: Configure APT mirrors
  when:
    - ansible_distribution == 'Debian'
    - ansible_distribution_release == 'stretch'
  template:
    src: apt/sources.list.j2
    dest: /etc/apt/sources.list
    mode: 0644

# Patriotisme
- name: Ensure French UTF-8 locale exists
  locale_gen:
    name: fr_FR.UTF-8
    state: present

# Fix LC_CTYPE="C"
- name: Select default locale
  debconf:
    name: locales
    question: locales/default_environment_locale
    value: fr_FR.UTF-8
    vtype: select
  notify: Reconfigure locales

# Molly-Guard : prevent accidental shutdowns
- include_tasks: molly-guard.yml

# APT-List Changes : send email with changelog
- include_tasks: apt-listchanges.yml

# User skeleton
- name: Configure user skeleton
  copy:
    src: "skel/dot_{{ item }}"
    dest: "/etc/skel/.{{ item }}"
  loop:
    - zshrc
    - zshrc.local