echo "Starting garuda-mokka post-install script..."

marker_dir="/usr/share/garuda-mokka"
marker_file="/usr/share/garuda-mokka/.initial-install-done"

# Font-icon directories
FONT_DIRS="/usr/share/fonts/TTF /usr/share/fonts/OTF /usr/share/fonts/gsfonts /usr/share/fonts/misc"
ICON_DIR="/usr/share/icons/hicolor"
GLIB_SCHEMA_DIR="usr/share/glib-2.0/schemas"

update_fonts() {
  mkfontscale "$FONT_DIRS" >/dev/null 2>&1
  mkfontdir "$FONT_DIRS" >/dev/null 2>&1
  fc-cache -s >/dev/null
}

# GTK related commands
update_gtk() {
  glib-compile-schemas $GLIB_SCHEMA_DIR
  gtk-update-icon-cache -ftq $ICON_DIR
  /bin/sh -c 'dconf update'
}

# Apply GRUB theme and TTY colors
apply_grub() {
  echo "Entering apply_grub() function..."
  sed -i 's&GRUB_CMDLINE_LINUX=""&GRUB_CMDLINE_LINUX="vt.default_red=30,243,166,249,137,245,148,186,88,243,166,249,137,245,148,166 vt.default_grn=30,139,227,226,180,194,226,194,91,139,227,226,180,194,226,173 vt.default_blu=46,168,161,175,250,231,213,222,112,168,161,175,250,231,213,200"&g' /etc/default/grub
  sed -i -e 's,.*GRUB_THEME=.*,GRUB_THEME="/usr/share/grub/themes/catppuccin-mocha/theme.txt",' /etc/default/grub
  sed -i -e 's,.*GRUB_GFXMODE=.*,GRUB_GFXMODE=auto,' /etc/default/grub
  sed -i -e 's,.*GRUB_DISTRIBUTOR=.*,GRUB_DISTRIBUTOR="Garuda",' /etc/default/grub
  grub-mkconfig -o /boot/grub/grub.cfg
  echo "Exiting apply_grub() function..."
  # Create the marker directory if it doesn't exist
  if [ ! -d "$marker_dir" ]; then
    mkdir -p "$marker_dir"
  fi
  touch "$marker_file"
}

# Post installation
post_install() {
  update_fonts
  update_gtk
  # Check if garuda-mokka is already installed by checking marker file
    if [ ! -f "$marker_file" ]; then
      # Marker file does not exist, run initial setup
      echo "Garuda-mokka is not already installed, running initial Mokka default grub setup."
      apply_grub
    else
      echo "Garuda-mokka is already installed, skipping Mokka default grub setup."
  fi
}

# Post upgrade
post_upgrade() {
  post_install
}

 post_remove() {
  # Prevents resetting GRUB configs on upgrades/reinstalls by deleting marker_dir
    echo "Garuda-mokka post_remove() function called."
    rm -rf /usr/share/garuda-mokka/
    echo "Package successfully uninstalled."
}
