- name: retrieve user $HOME # noqa 301 shell: "echo $HOME" become_user: "{{ poetry_user }}" register: home_stats - name: retrieve user $PATH # noqa 301 shell: "echo $PATH" become_user: "{{ poetry_user }}" register: path_stats - name: set poetry user variables set_fact: poetry_user_home: "{{ home_stats.stdout }}" poetry_user_path: "{{ path_stats.stdout }}" - name: create user folder for binaries become_user: "{{ poetry_user }}" file: state: directory mode: "0755" path: "{{ poetry_user_home }}/.local/bin" - name: set default python binary # noqa 208 become: true file: state: link src: "/usr/bin/python3" dest: "/usr/bin/python" when: ansible_distribution == "Ubuntu" - name: setup poetry for Ubuntu/Debian derived distro's block: - name: check poetry existence become_user: "{{ poetry_user }}" stat: path: "{{ poetry_dir }}" register: poetry_stats - name: download poetry installer become_user: "{{ poetry_user }}" get_url: url: "{{ poetry_url }}" dest: /tmp/ mode: "0750" when: poetry_stats.stat.isdir is not defined - name: install poetry become_user: "{{ poetry_user }}" command: "python /tmp/get-poetry.py --yes" # noqa 305 environment: POETRY_HOME: "{{ poetry_dir }}" when: poetry_stats.stat.isdir is not defined - name: add poetry to user binaries # noqa 208 become_user: "{{ poetry_user }}" file: state: link src: "{{ poetry_dir }}/bin/poetry" dest: "{{ poetry_user_home }}/.local/bin/poetry" when: ansible_distribution == "Debian" or ansible_distribution == "Ubuntu" - name: setup poetry for Archlinux become: true pacman: name: poetry state: present when: ansible_facts['os_family'] == "Archlinux" - name: update poetry config become_user: "{{ poetry_user }}" command: "poetry config virtualenvs.in-project true" # noqa 301 environment: PATH: "{{ poetry_user_home }}/.local/bin:{{ poetry_user_path }}"