Files
shell/setup/bootstrap.sh

89 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
DOTFILES_REPO="acedanger/shell"
DOTFILES_BRANCH="main"
DOTFILES_DIR="$HOME/shell"
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
echo -e "${GREEN}Setting up your system...${NC}"
# Detect OS
if [ -f /etc/os-release ]; then
. /etc/os-release
OS_NAME=$ID
OS_VERSION=$VERSION_ID
else
echo -e "${YELLOW}Unable to detect OS, assuming Debian/Ubuntu...${NC}"
OS_NAME="ubuntu"
OS_VERSION="22.04"
fi
echo -e "${GREEN}Detected OS: ${OS_NAME} ${OS_VERSION}${NC}"
# Function to determine the package manager to use
determine_pkg_manager() {
if command -v nala &> /dev/null; then
echo "nala"
elif [ "$OS_NAME" = "fedora" ]; then
echo "dnf"
else
echo "apt"
fi
}
# Determine which package manager to use
PKG_MANAGER=$(determine_pkg_manager)
echo -e "${GREEN}Using package manager: $PKG_MANAGER${NC}"
# Install git if not present
if ! command -v git &>/dev/null; then
echo -e "${YELLOW}Installing git...${NC}"
case $PKG_MANAGER in
nala)
sudo nala install -y git
;;
dnf)
sudo dnf install -y git
;;
apt)
sudo apt update && sudo apt install -y git
;;
esac
fi
# Create shell directory if it doesn't exist
mkdir -p "$HOME/shell"
# Clone or update repository
if [ -d "$DOTFILES_DIR" ]; then
echo -e "${YELLOW}Updating existing shell repository...${NC}"
cd "$DOTFILES_DIR"
git pull origin $DOTFILES_BRANCH
else
echo -e "${YELLOW}Cloning shell repository...${NC}"
git clone "https://github.com/$DOTFILES_REPO.git" "$DOTFILES_DIR"
cd "$DOTFILES_DIR"
fi
# Make scripts executable
chmod +x "$DOTFILES_DIR/setup/setup.sh"
chmod +x "$DOTFILES_DIR/completions/backup-scripts-completion.bash" 2>/dev/null || true
# Run setup script
"$DOTFILES_DIR/setup/setup.sh"
# Source the aliases file if it exists to make aliases available in the current session
ZSH_CUSTOM="$HOME/.oh-my-zsh/custom"
ALIASES_FILE="$ZSH_CUSTOM/aliases.zsh"
if [ -f "$ALIASES_FILE" ]; then
echo -e "${YELLOW}Loading aliases into current session...${NC}"
source "$ALIASES_FILE"
fi
echo -e "${GREEN}Bootstrap completed! Your aliases have been set up.${NC}"
echo -e "${YELLOW}Tip: Run 'source ~/.zshrc' or start a new terminal session to use all zsh features.${NC}"