#!/usr/bin/env bash
# winezgui-shortcuts-clean-up
winezgui-shortcuts-clean-up()
{
  unset SHOW_OPTION
  dbug "I: $(basename ${0}): Launched ${FUNCNAME[0]}"
    
  SOURCE "script-check-variables-loaded-or-not"
  script-check-variables-loaded-or-not
  SAVEIFS=${IFS}
  IFS=$(echo -en "\n\b")
  
  # If running from inside flatpak, it can't detect other links properly due to no access to other flatpak's dir ~/.var/app/<other_flatpak>
  if [ $(flatpak-spawn echo 0 2>/dev/null) ] ; then
       SEARCH_LIST=$(find ${APPLICATIONSDIR} -maxdepth 1 -iname "*${FLATPAK_NAME}*" -xtype l 2>/dev/null|tr '\n' '|')
  else
       SEARCH_LIST=$(find ${APPLICATIONSDIR} -maxdepth 1 -iname "*winezgui*" -xtype l 2>/dev/null|tr '\n' '|')
  fi

  BROKEN_LINKS_FOUND=$(echo ${SEARCH_LIST})
  SHORTCUTS_DIR_NAME=$(basename ${APPLICATIONSDIR})
  
  if [ -z "${BROKEN_LINKS_FOUND}" ] ; then
       echo "I: ${HEADER}: ${SHORTCUTS_DIR_NAME} directory has no broken symlinks."
       ${ZENITY_CMD} --error --title "${APP_WITH_VER} - Clean Up!" \
              --text "${SHORTCUTS_DIR_NAME} directory has no broken symlinks."
       WineZGUI_Window
  fi
  
  # if BROKEN_LINKS_FOUND has value, then only change exe
  for i in $(echo ${SEARCH_LIST}|tr '|' '\n'|sort)
  do
      RealName=$(basename "$i")
      RealFile=$(realpath -m "$i")

      SHOW_OPTION+="${RealName}"
      SHOW_OPTION+=" "
      NAMES+=("${RealName}")
      FILES+=("${RealFile}")
      count=$(expr ${count} + 1)
  done
  IFS=${SAVEIFS}

# Generate Height value
 SOURCE "winezgui-get-window-height"
 winezgui-get-window-height ${#FILES[@]}

 
  # 3. Show the found exe files using zenity
  ${ZENITY_CMD} --title="${APP_WITH_VER} - Clean Up!"  --text="Remove these Broken Shortcuts..." \
  --list --width=460 --height=${HEIGHT}  --hide-header --column " " ${SHOW_OPTION}

  ANSWER=$?
  
  if [ ${ANSWER} -eq 0 ]; then
       dbug "I: ${HEADER}: Deleted Broken Shortcuts!"
       # Clean up broken shortcuts and update shortcuts menu
       SOURCE "winezgui-remove-broken-links"
       winezgui-remove-broken-links
  else
       dbug "I: ${HEADER}: Cancelled!"
       WineZGUI_Window
  fi
  
  dbug "I: ${HEADER}: Removed broken WineZGUI .desktop links"
  

}
