You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

130 lines
3.9 KiB

#!/bin/bash
SETUP_SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
MAIN_DIR=$PWD
#################################################################################
# INCLUDES #
#################################################################################
#Include of all the scripts required fo the instalation
source $SETUP_SCRIPT_DIR/scripts/colors.sh
source $SETUP_SCRIPT_DIR/scripts/graphics.sh
source $SETUP_SCRIPT_DIR/scripts/check_installed.sh
source $SETUP_SCRIPT_DIR/programs/installCommands.sh
#################################################################################
# DECLARATIONS #
#################################################################################
#Varibale to define de defualt dorectories for the installs
DOTFILE_DIR=$MAIN_DIR/dotfiles
USER_DOTFILE_DIR=/home/$USER/.config
FONTS_DIR="/usr/local/share/fonts"
WALLPAPERS_DIR="/home/$USER"
# Gathering the core count of the cpu
CPU_CORE_COUNT=$(grep -c ^processor /proc/cpuinfo)
# Platform, TODO: to make a selection
PLATFORM="laptop"
# Defualt sleep time
sleepTime=0.2
# Declaration of OS and their package managers their nurical order is imporant
os_list=(debian arch raspberry)
pckgmngr_list=('sudo apt -y install' 'sudo pacman -S' 'raspi install')
# Declaration of common packages and their config files forr al linux distros
# These pacakges must be found in the standart repositories
common_programs_list=(htop curl tmux git mc wget sudo unzip cmake make gcc exa scrot acpi)
# These pacakges must not be found in the standart repositories and can be gits or direct installs
custom_installs_debian=(vim fish dmenu fonts wallpaper i3 picom alacritty qownotes sddm)
#custom_installs_arch=(vim fish dmenu fonts wallpaper i3 picom alacritty qownotes sddm)
custom_installs_arch=(dmenu)
custom_installs_raspberry=(vim fish dmenu fonts wallpaper i3 picom qownotes alacritty sddm)
os_count=${#os_list[@]}
pckgmngr_count=${#pckgmngr_list[@]}
OS="NONE"
OS_NO=99
#################################################################################
# FUNTIONS #
#################################################################################
# function to be callerd whent he instaltion had an error
exit_abord()
{
graphics_error "Linux instalation Script Has been aborded"
}
# Function called when the installation has finished
exit_sucsess()
{
graphics_success "Linux instalation Script Has ended with Sucsess"
}
#################################################################################
# UI #
#################################################################################
cd $SETUP_SCRIPT_DIR
echo ""
graphics_header "Wellcome to my Linux instalation Script"
echo ""
# Prints information
graphics_comment "SYSTEM IMFORMATION:"
graphics_comment "Cpu Core Count = $CPU_CORE_COUNT"
graphics_comment "Configuration dir = $USER_DOTFILE_DIR"
graphics_comment "Fonts dir = $FONTS_DIR"
graphics_comment "Wallpapers dir = $WALLPAPERS_DIR"
echo ""
graphics_indication "The Following programs will be installed :"
#Gathering and echoing the commen programms list
color_start "themeFocus"
for i in "${!common_programs_list[@]}";
do
printf "${common_programs_list[$i]} | "
done
echo ""
echo ""
color_stop
# Os selection menu, each os has his name and his number.
graphics_indication "Please Select your OS"
for i in "${!os_list[@]}";
do
color_start "themeSelect"
printf "[$(($i + 1))] ${os_list[$i]}"
color_stop
echo -e " install cmd: \"${pckgmngr_list[$i]}\""
done
echo ""
echo ""
color_start "themeUserInput"
read -p "Select your os or ( q to quit ) : " answer
color_stop
if [[ "$answer" == "q" ]]; then
exit_abord
else
#Gets the os name an nuber which will be used by each install script an installCommand.sh
if [ $answer -lt $(($os_count + 1)) ]; then
answer=$(( $answer - 1 ))
OS=${os_list[$answer]}
OS_NO=$answer
install_start
else
echo " the given nurber was not correct >>ABORDING<<"
exit_abord
fi
fi