---
{%- from "fd/map.jinja" import fd with context %}
{% set archive_exclude_dir = './fd-v' + fd.version + '-' + fd.arch + '-unknown-' + fd.os + '-musl' %}
fd-archive-extract:
  archive.extracted:
    - name: {{ fd.release_dir }}/fd-{{ fd.version }}
    - source: {{ fd.mirror }}/v{{ fd.version }}/fd-v{{ fd.version }}-{{ fd.arch }}-unknown-{{ fd.os|lower }}-musl.tar.gz
    - skip_verify: true
    - options: >
        --transform 's|^\{{ archive_exclude_dir }}|/|g'
        --transform 's|LICENSE.*||g'
        --transform 's|fd\.1||g'
        --transform 's|CHANGELOG.*||g'
        --transform 's|autocomplete||g'
        --transform 's|README.md||g'
        --strip 1
    - user: root
    - group: root
    - enforce_ownership_on: {{ fd.release_dir }}/fd-{{ fd.version }}
    - enforce_toplevel: false
    - if_missing: {{ fd.release_dir }}/fd-{{ fd.version }}/fd

fd-binary-symlink:
  file.symlink:
    - name: /usr/local/bin/fd
    - target: {{ fd.release_dir }}/fd-{{ fd.version }}/fd
    - force: true
    - require:
      - archive: fd-archive-extract

fd-cleanup:
  software.cleanup:
    - name: fd
    - path: {{ fd.release_dir }}
    - version: "{{ fd.version }}"