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.
128 lines
3.9 KiB
128 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=(fish dmenu fonts wallpaper i3 picom alacritty obsidian sddm)
|
|
custom_installs_arch=(fish dmenu fonts wallpaper i3 picom alacritty obsidian sddm)
|
|
custom_installs_raspberry=(fish dmenu fonts wallpaper i3 picom 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
|