#!/bin/bash clear current_user="$(whoami)" selected_user="" pause() { read -rp "Press Enter to continue..." } select_user() { while true; do echo "----------------------------" echo "Available users:" echo "----------------------------" grep -E ':/home/' /etc/passwd | cut -d: -f1 echo "q = exit" echo "----------------------------" read -rp "Type the user: " choice if [[ "$choice" == "q" ]]; then echo "Exiting..." exit 1 elif [[ -d "/home/$choice" ]]; then read -rp "Confirm user '$choice'? (y/N): " confirm if [[ "$confirm" == "y" ]]; then selected_user="$choice" return fi else echo "User '$choice' not valid!" pause fi done } # ======================== # USER SELECTION # ======================== while true; do echo "### brc-script installer ###" echo "---------------------------------------------" echo "Install for current user ($current_user)?" echo "---------------------------------------------" echo " y - yes" echo " n - choose another user" echo " q - exit" echo " default - yes" echo "---------------------------------------------" read -rp "Choice: " choice case "$choice" in n) select_user break ;; q) echo "Exiting..." exit 1 ;; *) read -rp "Confirm current user '$current_user'? (y/N): " confirm if [[ "$confirm" == "y" ]]; then selected_user="$current_user" break fi ;; esac clear done # ======================== # VARIABLES # ======================== home="/home/$selected_user" bashrc="$home/.bashrc" mainfolder="$home/.bashrc.d" neededfolder="$mainfolder/scripts-needed" availablefolder="$mainfolder/scripts-available" enabledfolder="$mainfolder/scripts-enabled" removedfolder="$mainfolder/scripts-removed" script_dir="$(cd "$(dirname "$0")" && pwd)" # ======================== # CREATE DIRECTORIES # ======================== echo "[ Creating folders... ]" mkdir -p "$neededfolder" mkdir -p "$availablefolder" mkdir -p "$enabledfolder" mkdir -p "$removedfolder" # ======================== # BACKUP .bashrc # ======================== if [[ -f "$bashrc" ]]; then cp "$bashrc" "$home/bashrc-backup-$(date +%F)" echo "[ Backup created ]" else echo "[ WARNING: .bashrc not found, creating a new one ]" touch "$bashrc" fi # ======================== # MODIFY .bashrc # ======================== if [[ -f "$script_dir/NEEDED-FOR-INSTALLER" ]]; then cat "$script_dir/NEEDED-FOR-INSTALLER" >> "$bashrc" echo "[ Updated .bashrc ]" else echo "[ ERROR: NEEDED-FOR-INSTALLER missing ]" fi # ======================== # COPY MAIN STRUCTURE # ======================== cp -r "$script_dir/../." "$mainfolder" echo "[ Main folder installed ]" # ======================== # COPY DEFAULT SCRIPTS # ======================== echo "[ Installing default scripts... ]" default_scripts=( "00_default.sh" "01_git-cli-highlitgh.sh" "02_bashboard.sh" ) for script in "${default_scripts[@]}"; do if [[ -f "$script_dir/$script" ]]; then cp "$script_dir/$script" "$availablefolder/" echo " -> Copied $script" else echo " -> WARNING: $script not found" fi done # ======================== # APPLY CHANGES # ======================== # shellcheck disable=SC1090 source "$bashrc" echo "[ Bashrc reloaded ]" # ======================== # FINAL MESSAGE # ======================== clear echo "##################################" echo " Installation Done " echo "##################################" echo "" echo "Scripts available in:" echo " $availablefolder" echo "" echo "Use commands:" echo " brc-script -> manage scripts" echo " refresh-brc -> reload config" echo "" echo "##################################" echo " Thanks for using this script! " echo "##################################" pause