# Mapping logic for backup-docker-to-local CLI arguments
#
# - BKP_DOCKER_2_LOC_DB_ROUTINE:       All service names where backup.database_routine is set (for --database-containers)
# - BKP_DOCKER_2_LOC_NO_STOP_REQUIRED: All images where backup.no_stop_required is set (for --images-no-stop-required)
# - BKP_DOCKER_2_LOC_DISABLED:         All images where backup.disabled is set (for --images-no-backup-required)
# CLI-ready variables render these lists as argument strings.

systemctl_id: sys-ctl-bkp-docker-2-loc

# Verify if DB is enabled
BKP_DOCKER_2_LOC_DB_ENABLED: "{{ database_type | default('') | bool }}"

# Gather mapped values as lists
BKP_DOCKER_2_LOC_DB_ROUTINE: >-
  {{ applications | find_dock_val_by_bkp_entr('database_routine', 'name') | list }}

BKP_DOCKER_2_LOC_NO_STOP_REQUIRED: >-
  {{ applications | find_dock_val_by_bkp_entr('no_stop_required', 'image') | list }}

BKP_DOCKER_2_LOC_DISABLED: >-
  {{ applications | find_dock_val_by_bkp_entr('disabled', 'image') | list }}

# CLI argument strings (only set if list not empty)
BKP_DOCKER_2_LOC_DB_ROUTINE_CLI: >-
  {% if BKP_DOCKER_2_LOC_DB_ROUTINE | length > 0 -%}
    --database-containers {{ BKP_DOCKER_2_LOC_DB_ROUTINE | join(' ') }}
  {%- endif %}

BKP_DOCKER_2_LOC_NO_STOP_REQUIRED_CLI: >-
  {% if BKP_DOCKER_2_LOC_NO_STOP_REQUIRED | length > 0 -%}
    --images-no-stop-required {{ BKP_DOCKER_2_LOC_NO_STOP_REQUIRED | join(' ') }}
  {%- endif %}

BKP_DOCKER_2_LOC_DISABLED_CLI: >-
  {% if BKP_DOCKER_2_LOC_DISABLED | length > 0 -%}
    --images-no-backup-required {{ BKP_DOCKER_2_LOC_DISABLED | join(' ') }}
  {%- endif %}

# List of CLI args for convenience (e.g. for looping or joining)
BKP_DOCKER_2_LOC_CLI_ARGS_LIST:
  - "{{ BKP_DOCKER_2_LOC_DB_ROUTINE_CLI }}"
  - "{{ BKP_DOCKER_2_LOC_NO_STOP_REQUIRED_CLI }}"
  - "{{ BKP_DOCKER_2_LOC_DISABLED_CLI }}"

BKP_DOCKER_2_LOC_EXEC: >-
  /usr/bin/python {{ backup_docker_to_local_folder }}backup-docker-to-local.py
  --compose-dir {{ PATH_DOCKER_COMPOSE_INSTANCES }}
  {{ BKP_DOCKER_2_LOC_CLI_ARGS_LIST | select('string') | join(' ') }}
