#!/bin/bash

function set_variables() {

  declare -A params
  while (("$#")); do
    case "$1" in
    --pack)
      params[pack]="$2"
      shift 2
      ;;
    --github_user)
      params[github_user]="$2"
      shift 2
      ;;
    --branch)
      params[branch]="$2"
      shift 2
      ;;
    # arm64-rpi
    --image_link)
      params[image_link]="$2"
      shift 2
      ;;
    # arm64-rpi
    --image_checksum)
      params[image_checksum]="$2"
      shift 2
      ;;
    # amd64
    # preseed.cfg
    --preseed_file)
      params[preseed_file]="$2"
      shift 2
      ;;
    # amd64
    # uefi | bios
    --boot)
      params[boot]="$2"
      shift 2
      ;;
    # amd64
    # none | gnome
    --desktop)
      params[desktop]="$2"
      shift 2
      ;;
    --image_size)
      params[image_size]="$2"
      shift 2
      ;;
    --)
      shift
      break
      ;;
    *)
      echo "Error: Invalid argument"
      exit 1
      ;;
    esac
  done

  # Reset the global vars string
  vars=""
  # Iterate over all keys in the params array
  for key in "${!params[@]}"; do
    # If the value for this key is not empty, add it to vars
    if [ -n "${params[$key]}" ]; then
      vars="$vars -var $key=${params[$key]}"
    fi
  done

  export vars

}