#!/bin/bash

[[ -v installbase ]] || source /var/tmp/install/common.sh

install_more_groups() {
  local groups=(
    kde-desktop
    fonts
    base-graphical
    hardware-support
    standard
  )
  echo "dnf install group ${groups[@]}"
  dnf -qy --color=never \
      -x PackageKit-command-not-found \
      -x ksshaskpass \
      -x plasma-welcome \
      -x plasma-setup \
      -x fedora-workstation-repositories \
      -x grub2-common \
      -x grub2-pc \
      -x grub2-pc-modules \
      -x grub2-efi-x64 \
      -x grub2-tools \
      -x grub2-tools-minimal \
      -x grub2-tools-extra \
      -x grub2-tools-efi \
      group install "${groups[@]}"
}

install_more_software() {
  local packs=(
    git
    meld
    mousepad
    ugrep
    gutenprint
    portaudio
    NetworkManager-wifi
    liberation-sans-fonts
    liberation-serif-fonts
    gdouros-symbola-fonts
    google-noto-emoji-fonts
    im-chooser
    libadwaita
    SDL2_ttf
    breeze-icon-theme-fedora
    pipewire-utils
    pipewire-gstreamer
    pipewire-config-raop
  )
  echo "dnf install ${packs[@]}"
  dnf -qy --color=never install "${packs[@]}"
}

disable_updates() {
  disable_repo fedora-updates.repo
  disable_repo fedora-updates-testing.repo
  disable_repo rpmfusion-free-updates-testing.repo
  disable_repo rpmfusion-free-updates.repo
  disable_repo google-chrome.repo
}

enable_updates() {
  enable_repo fedora-updates.repo
  enable_repo rpmfusion-free-updates.repo
}

xdg_user_dirs_config() {
  if [[ -f /etc/xdg/user-dirs.conf ]]; then
    sed -i 's/^enabled=.*/enabled=False/' /etc/xdg/user-dirs.conf
  else
    mkdir -p /etc/xdg
    echo "enabled=False" > /etc/xdg/user-dirs.conf
  fi
}

firstboot_script() {
  run disable_updates || return
  run install_more_groups || return
  run install_more_software || return
  run enable_updates || return
  run xdg_user_dirs_config || return
  run set_enforcing || return
  run trigger_autorelabel || return
}

return 2> /dev/null || {
  firstboot_script
}
