#!/bin/bash
set -e

dpkg-maintscript-helper rm_conffile \
  /etc/dconf/profile/user 0.81 ubuntustudio-menu -- "$@"

dpkg-maintscript-helper rm_conffile \
  /etc/dconf/profile/ubuntustudio 0.82 ubuntustudio-menu -- "$@"

genAppFoldersFn() {
  echo "Generating GNOME appfolders..."
  varLibDir="/var/lib/ubuntu-appfolder-defaults"
  mkdir -p "${varLibDir}"
  addFoldChild=$@
  addFoldChildArry=(${addFoldChild})
  unset 'addFoldChildArry[0]'
  echo "${addFoldChildArry[@]}" > "${varLibDir}/$1"

  dirList=$(ls "${varLibDir}")
  dirListArry=(${dirList})
  folderChildArry=()

  readFile=$(cat ${varLibDir}/${dirListArry[0]})
  folderChildArry=(${readFile})
  unset 'dirListArry[0]'
  if ! [ "${#dirListArry[*]}" = 0 ]; then
    for file in "${dirListArry[@]}"; do
      readFile=$(cat ${varLibDir}/${file})
      readFileArry=(${readFile})
      for i in "${!readFileArry[@]}"; do
        match="no"
        for j in "${!readFileArry[@]}"; do
          if [ "${readFileArry[i]}" = "${folderChildArry[j]}" ]; then
            match="yes"
          fi
        done
        if [ ${match} = "no" ]; then
          folderChildArry+=(${readFileArry[i]})
        fi
      done
    done
  fi

  for i in "${!folderChildArry[@]}"; do
    folderChildOut="'${folderChildArry[i]}', ${folderChildOut}"
  done

  folderChildOut=$(echo "${folderChildOut}" | head -c -3)
  
  output=$(cat <<EOF
[org/gnome/desktop/app-folders]
folder-children=[${folderChildOut}]
EOF
)
  echo "${output}" > /etc/dconf/db/site.d/01_appfolders
  echo "DONE"
}

case "$1" in
    configure)

# overwrite menus and dconf to ensure menus and GNOME folders are up-to-date
mkdir -p /etc/dconf/db/site.d
cp /usr/share/ubuntustudio/00_ubuntustudio /etc/dconf/db/site.d

mkdir -p /etc/xdg/menus/applications-merged
cp /usr/share/ubuntustudio/studio.menu /etc/xdg/menus/applications-merged

genAppFoldersFn ubuntustudio Utilities Sundry YaST AudioProduction AudioMixers AudioUtilities Effects GraphicsDesign LSPPlugins MIDI Photography GraphicUtility Instruments VideoProduction US-Info

      update-alternatives \
        --install /usr/share/dconf/profile/user default.ubuntu-appfolders \
          /usr/share/dconf/profile/ubuntustudio 150

if [ -f /usr/bin/dconf ]; then
    dconf update
fi

    ;;

    abort-upgrade|abort-deconfigure|abort-remove)
    ;;

    *)
        echo "$0 called with unknown argument \`$1'" 1>&2
        exit 1
    ;;
esac

# Tag to allow some debhelper commands to inject relevant code
#DEBHELPER#
