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

PACKAGE_LIST=(
  dialog
  discord
  htop
  neofetch
  neovim
  openjdk-11-jre
  python3
  python3-pip
  solaar
  steam
  system76-keyboard-configurator
  tilix
  libvirt-daemon-driver-lxc
  virt-manager
  vlc
  zsh
)

FLATPAK_LIST=(
  com.github.fabiocolacio.marker
  com.mattermost.Desktop
  com.obsproject.Studio
  net.cozic.joplin_desktop
  net.veloren.Airshipper  
)

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

# iterate through package and installs them
for package_name in ${PACKAGE_LIST[@]}; do
  if ! sudo apt list --installed | grep -q "^\<$package_name\>"; then
    echo "Installing $package_name..."
    sleep .5
    sudo apt 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 # Downloading and Configuring Go #
echo ##################################

# Grabs and downloads Go for Google
wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz

echo ###################
echo # Installing Rust #
echo ###################

# Install Rust
curl https://sh.rustup.rs -sSf | sh

echo ######################
echo # Setting up SSH Key #
echo ######################

# SSH Key Gen
ssh-keygen -t ed25519 -C ${USER}@$(hostname --fqdn)

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

# wget https://github.com/OrangeDrangon/android-messages-desktop/releases/download/v5.1.1/AndroidMessages-v5.1.1-linux-amd64.deb

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

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
flatpak update

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

rm -r *.ttf *.tar.gz

FILES=( 'vimrc' 'vim' 'zshrc' 'zsh' 'agignore' 'gitconfig' 'gitignore' 'gitmessage' )
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

