#!/usr/bin/env bash
winezgui-template-change()
{
  HEADER="$(basename ${0}): ${FUNCNAME[0]}"
    
  SOURCE "script-check-variables-loaded-or-not"
  script-check-variables-loaded-or-not
  dbug "I: $(basename ${0}): Launched ${FUNCNAME[0]}"
  SOURCE "winezgui-list-available-templates"
  winezgui-list-available-templates # get SELECTED_TEMPLATE 
  
  # If Default (WINEZGUI_TEMPLATE) is not found initialize it
  # if system.reg not found or template does not exist, creat it.
  if [ ! -d "${SELECTED_TEMPLATE}" ] || [ ! -f "${SELECTED_TEMPLATE}/system.reg" ]; then
       dbug  "I: ${HEADER}: ${SELECTED_TEMPLATE} does not exist, creating..."
       mkdir -p "${SELECTED_TEMPLATE}"
       SOURCE "winezgui-initialize-wineprefix"
       winezgui-initialize-wineprefix "${SELECTED_TEMPLATE}"
  fi
  
  # Get Arch from Registry files
  SYSTEM_REGISTRY_FILE="${SELECTED_TEMPLATE}/system.reg"
  if [ -f "${SYSTEM_REGISTRY_FILE}" ]; then
       REG_ARCH=$(grep "#arch=" "${SYSTEM_REGISTRY_FILE}" |cut -f2 -d "=")
       dbug "I: ${HEADER}: found arch=${REG_ARCH} in system.reg"
       if [ -z "${REG_ARCH}" ]; then
            ${ZENITY_CMD} --error --text "Could not find arch in system.reg file"
            unset SELECTED_TEMPLATE
            WineZGUI_Window
       fi
       if [ "${REG_ARCH}" != "win32" ] && [ "${REG_ARCH}" != "win64" ]; then
            ${ZENITY_CMD} --error --text "Could not find win32 or win64 in system.reg"
            unset SELECTED_TEMPLATE
            WineZGUI_Window
       fi
  else 
       dbug "I: ${HEADER}: not found ${SYSTEM_REGISTRY_FILE} "
       ${ZENITY_CMD} --error --text "Could not find file ${SYSTEM_REGISTRY_FILE}"
       unset SELECTED_TEMPLATE
       WineZGUI_Window
  fi  

  # If Settings.yml is writable
 if [ -w "${SETTINGS_FILE}" ] && [ -w "${ABOUTFILE}" ]; then
       export TEMPLATE="${SELECTED_TEMPLATE}"
       export TEMPLATE_NAME=$(basename ${TEMPLATE})
       export DEFAULT="${SELECTED_TEMPLATE}"
       export WINEPREFIX="${SELECTED_TEMPLATE}"
       sed "s|Template:.*|Template:${TEMPLATE_NAME}|g" -i "${ABOUTFILE}"
       sed "s|Wine Prefix:.*|Wine Prefix:${DEFAULT}|g" -i "${ABOUTFILE}"
       sed "s|template:.*|template:${SELECTED_TEMPLATE}|g" -i "${SETTINGS_FILE}"
  fi

  dbug "I: ${HEADER}: Template: ${SELECTED_TEMPLATE}"
  dbug "I: ${HEADER}: Selected Template is ${TEMPLATE_NAME}"
  dbug "I: ${HEADER}: Default = ${DEFAULT}"
  dbug "I: ${HEADER}: Wineprefix = ${WINEPREFIX}"
  
  # Prompt the user to change arch too if it is different from the selected one
  if [ "${REG_ARCH}" != "${WINEARCH}" ]; then
       unset TEXT
       TEXT+="Template <b>${TEMPLATE_NAME}</b> is <b>${REG_ARCH}</b>, "
       TEXT+="but WineZGUI is using ${WINEARCH}.\nChange to ${REG_ARCH}!?"
       ${ZENITY_CMD} --question --title "${APP_WITH_VER} Change Arch!?" \
              --text "${TEXT}"
       ANSWER=$?
       # If yes
       if [ ${ANSWER} -eq 0 ]; then
            if [ -w "${SETTINGS_FILE}" ] && [ -w "${ABOUTFILE}" ]; then
                 sed "s|arch:.*|arch:${REG_ARCH}|g" -i "${SETTINGS_FILE}"
                 sed "s|Wine Arch:.*|Wine Arch:${REG_ARCH}|g" -i "${ABOUTFILE}"
                 export WINEARCH="${REG_ARCH}"
                 dbug "I: ${HEADER}: arch changed to ${REG_ARCH}"       
            fi
       else # If no/cancel
            unset TEXT
            TEXT+="<b>Warning: All newly created prefixes will not work!!</b>\n"
            TEXT+="Remember to change to ${REG_ARCH} for ${TEMPLATE_NAME}!"
            ${ZENITY_CMD} --warning --text="${TEXT}" \
            --title "${APP_WITH_VER} - ${TEMPLATE_NAME} needs ${REG_ARCH}!"
       fi
  fi
  unset TEXT
}
