---
- name: install config repo
  git:
    repo: git@code.infektor.net:config/python.git
    dest: ~/.config/python

# TODO: set repo email

- name: create config directories
  file:
    state: directory
    path: '{{item}}'
  with_items:
    - ~/.config
    - ~/.config/ipython/profile_default
    - ~/.config/pip

# Ensure that pip.conf exists before ever installing pip packages since
# Debian has enabled `EXTERNALLY-MANAGED` from PEP 668 which breaks `pip
# install --user` unless configured otherwise.
- name: create symbolic links
  file:
    state: link
    src: '{{item.src}}'
    dest: '{{item.dest}}'
  with_items:
    - src: ~/.config/python/flake8
      dest: ~/.config/flake8
    - src: ~/.config/python/pylintrc
      dest: ~/.pylintrc
    - src: ~/.config/python/ipython_config.py
      dest: ~/.config/ipython/profile_default/ipython_config.py
    - src: ~/.config/python/pip.conf
      dest: ~/.config/pip/pip.conf

- name: install pip packages
  pip:
    name: '{{python_pip_packages}}'
    state: latest
    extra_args: --user

- name: create directories
  file:
    state: directory
    dest: '{{item}}'
  with_items:
    - ~/.config/ipython/profile_default
    - ~/.config/pip