- 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 }}'