#!/usr/bin/env bash
# A script for setting up post install
# Relies on Flatpak to be installed
# Created by Blake Ridgway

# Verify flatpak is engaged properly
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

PACKAGE_LIST=(
  dialog
  git
  go
  htop
  neofetch
  neovim
  python3
  python3-pip
  solaar
  tilix
  virt-manager
  zsh
)

FLATPAK_LIST=(
  com.bitwarden.desktop
  com.discordapp.Discord
  com.jetbrains.GoLand
  com.jetbrains.DataGrip
  com.obsproject.Studio
  com.slack.Slack
  com.valvesoftware.Steam
  net.davidotek.pupgui2
  net.veloren.airshipper
  org.videolan.VLC
  sh.cider.Cider
)

echo #######################
echo # Installing Packages #
echo #######################

# iterate through package and installs them
for package_name in ${PACKAGE_LIST[@]}; do
  if ! sudo dnf list --installed | grep -q "^\<$package_name\>"; then
    echo "Installing $package_name..."
    sleep .5
    sudo dnf install "$package_name" -y
    echo "$package_name has been installed"
  else
    echo "$package_name already installed"
  fi
done

for flatpak_name in ${FLATPAK_LIST[@]}; do
	if ! flatpak list | grep -q $flatpak_name; then
		flatpak install "$flatpak_name" -y
	else
		echo "$package_name already installed"
	fi
done

echo #####################
echo # Install Nerd Font #
echo #####################

# Nerd Font install
wget https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/Hack/Regular/complete/Hack%20Regular%20Nerd%20Font%20Complete.ttf
mkdir -p ~/.local/share/fonts 
cp Hack\ Regular\ Nerd\ Font\ Complete.ttf ~/.local/share/fonts/
fc-cache -f -v

echo ######################
echo # Installing OhMyZSH #
echo ######################

# Oh-my-ZSH
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

echo ############################
echo # Setting up Powerlevel10k #
echo ############################

# POWERLEVEL10K
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

echo ##################################
echo # Copying p10k Config file to ~/
echo ##################################

# Copy p10k Config file
cp .p10k.zsh ~/

echo ############################
echo # Setting up nvim/init.vim #
echo ############################

mkdir -p ~/.config/nvim/
echo $'set runtimepath^=~/.vim runtimepath+=~/.vim/after\nlet &packpath=&runtimepath\nsource ~/.vimrc' > ~/.config/nvim/init.vim

echo #######################
echo # Cleanup and Updates #
echo #######################

sudo dnf upgrade --refresh
flatpak update

echo ################
echo # File Cleanup #
echo ################

rm -r *.ttf *.tar.gz *.rpm

FILES=( 'vimrc' 'vim' 'zshrc' 'zsh' 'agignore' 'gitconfig' 'gitignore' 'gitmessage' 'aliases' )
for file in ${FILES[@]}; do
  echo ""
  echo "Simlinking $file to $HOME"
  ln -sf "$PWD/$file" "$HOME/.$file"
  if [ $? -eq 0 ]
  then
    echo "$PWD/$file ~> $HOME/.$file"
  else
    echo 'Install failed to symlink.'
    exit 1
  fi
done

# Enable RPM Fusion

sudo dnf install \
  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

sudo dnf install \
  https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
  
# Enable Mesa aco
sudo dnf copr enable gloriouseggroll/mesa-aco

# Enable fsync kernel
sudo dnf copr enable sentry/kernel-fsync

sudo dnf upgrade --refresh