---
{%- from "headscale/map.jinja" import headscale with context %}
headscale-group:
  group.present:
    - name: headscale
    - gid: {{ headscale.group.gid }}
    - watch_in:
      - service: headscale-service

headscale-user:
  user.present:
    - name: headscale
    - uid: {{ headscale.user.uid }}
    - gid: {{ headscale.group.gid }}
    - allow_uid_change: true
    - allow_gid_change: true
    - home: /var/lib/headscale
    - watch_in:
      - service: headscale-service

headscale-release-dir:
  file.directory:
    - name: {{ headscale.release_dir }}/headscale-{{ headscale.version }}

headscale-install-dir:
  file.directory:
    - name: {{ headscale.install_dir }}

headscale-bin-download:
  file.managed:
    - name: {{ headscale.release_dir }}/headscale-{{ headscale.version }}/headscale
    - source: {{ headscale.mirror }}/v{{ headscale.version }}/headscale_{{ headscale.version }}_{{ headscale.os }}_{{ headscale.arch }}
    - skip_verify: true
    - user: root
    - group: root
    - if_missing: {{ headscale.release_dir }}/headscale-{{ headscale.version }}/headscale
    - watch_in:
      - service: headscale-service

headscale-bin-symlink:
  file.symlink:
    - name: {{ headscale.install_dir }}/headscale
    - target: {{ headscale.release_dir }}/headscale-{{ headscale.version }}
    - force: true

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