---
- name: Install TA-Tools
  ansible.builtin.package:
    name: "tools-for-technical-analysts"
    state: latest

- name: |
    Remove build dependencies used for the old installation method that didn't
    rely on a prebuilt Debian package.
  block:
    - name: install Git (prerequisite for ansible.builtin.git)
      ansible.builtin.apt:
        name: [
          "gcc",    # needed only for Archivematica version
          "git",
          "libdist-zilla-perl",
        ]
        state: absent
    
#    - name: checkout ta-tools repo
#      ansible.builtin.git:
#        repo: "https://git.slub-dresden.de/digital-preservation/tools-for-technical-analysts.git"
#        dest: "/tmp/tools-for-technical-analysts/"
#        version: "version1.0-rosetta"
#      register: ta_tools_git
    - name: REMOVE ta-tools repo
      ansible.builtin.file:
        path: "/tmp/tools-for-technical-analysts/"
        state: absent
    
    # Run `dzil listdeps` to get an updated list of dependencies.
    # Commented dependencies are not available as Debian packages and will be
    # installed when running `dzil install` in the next task.
    - name: |
        REMOVE dependencies for ta-tools. Keep only what is also listed as a
        dependency in the tools-for-technical-analysts Debian package to avoid
        removing and immediately reinstalling them.
      ansible.builtin.apt:
        name: [
          # App::Cmd::Setup
          # "libcurl4-gnutls-dev",    # needed only for Archivematica version
          # "libdata-printer-perl",   # Package dependency
          "libdatetime-perl",
          "libdatetime-format-dateparse-perl",
          # ExtUtils::MakeMaker
          # IO::Zlib
          # LWP::UserAgent
          "libextutils-pkgconfig-perl",
          "libpath-tiny-perl",
          # "libregexp-optimizer-perl",   # Package dependency
          # "libsoap-lite-perl",    # Package dependency
          # "libtest-cmd-perl",    # needed only for Archivematica version
          "libtext-csv-perl",
          "libyaml-perl",
        ]
        state: absent
    
#     # This is THE main purpose of this task file, so we won't run this as a
#     # handler, but set "noqa: no-handler" instead.
#     # Also, OF COURSE we want to run it every time. We just pulled a fresh copy
#     # from Git and it's onyl run when that action changed.
#     - name: install ta-tools
#       ansible.builtin.command:    # noqa: no-changed-when
#         cmd: "dzil install"
#         chdir: "/tmp/tools-for-technical-analysts/"
#       when: ta_tools_git.changed    # noqa: no-handler
#       async: 100000
    
    - name: create directories needed by ta-tool
      ansible.builtin.file:
        path: "/home/{{ vault_subapp_user }}/{{ item }}/"
        state: directory
        mode: "0755"
        owner: "{{ vault_subapp_user }}"
        group: "{{ vault_subapp_group }}"
      loop:
        - ".cache"
        - ".config"