---
- name: stat tea executable
  stat:
    path: '{{tea_package_exe}}'
  register: tea

- name: get installed version
  when: tea.stat.exists
  command: '{{tea_package_exe}} --version'
  register: tea_version_string

- name: extract version number
  when: tea.stat.exists
  set_fact:
    installed_version: "{{tea_version_string.stdout |
      regex_search('^.*(\\d+\\.\\d+\\.\\d+).*golang.*$', '\\1') }}"

- name: get latest release json
  uri:
    url: https://gitea.com/api/v1/repos/gitea/tea//releases/latest
  register: latest

- name: check installed version
  set_fact:
    install_required: >
      {{not tea.stat.exists or latest.json.name != 'v' + installed_version[0]}}
    asset: '{{latest.json.assets | json_query(tea_asset_query)}}'

- name: create package directory
  when: install_required
  become: true
  file:
    state: directory
    path: '{{tea_package_dir}}/bin'

- name: download package
  when: install_required
  become: true
  get_url:
    url: '{{asset.browser_download_url}}'
    dest: '{{tea_package_exe}}'
    mode: '0755'
  environment: '{{proxy_environment}}'

- name: install package
  when: install_required
  become: true
  command:
    cmd: 'stow --no-folding --target /usr/local .'
    chdir: '{{tea_package_dir}}'