#!/bin/bash
set -e

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

dpkg-maintscript-helper rm_conffile \
  /etc/dconf/profile/ubuntustudio 23.10.12 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/lib/edubuntu-menu/00_edubuntu /etc/dconf/db/site.d

# ensure menu policies for non-admins are in place
cp /usr/lib/edubuntu-menu/edubuntu.sh /etc/profile.d

genAppFoldersFn edubuntu Utilities Sundry YaST Art Games Language Math Science SocialSciences Technology Office Edubuntu-Info Music Teaching

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


if which dconf > /dev/null; 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#
