initial commit

This commit is contained in:
Michael Moese 2025-07-17 11:53:03 +02:00
commit 07816eb302
7 changed files with 167 additions and 0 deletions

62
install.sh Executable file
View file

@ -0,0 +1,62 @@
#!/bin/bash
set -e
DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$DOTFILES_DIR" || exit 1
PKG="stow"
# Check if stow is installed
if ! command -v stow &> /dev/null; then
echo "'$PKG' is not installed."
# Detect distribution
if [[ -f /etc/os-release ]]; then
. /etc/os-release
DISTRO_ID=$ID
else
echo "Could not detect distribution. Please install '$PKG' manually."
exit 1
fi
# Choose installation command
case "$DISTRO_ID" in
debian|ubuntu)
INSTALL_CMD="sudo apt update && sudo apt install -y $PKG"
;;
opensuse*|suse|sles)
INSTALL_CMD="sudo zypper install -y $PKG"
;;
rocky|rhel|centos)
INSTALL_CMD="sudo dnf install -y $PKG"
;;
arch)
INSTALL_CMD="sudo pacman -S --noconfirm $PKG"
;;
*)
echo "Unsupported distribution '$DISTRO_ID'. Please install '$PKG' manually."
exit 1
;;
esac
# Ask user
read -rp "Do you want to install '$PKG' now? [y/N]: " reply
if [[ "$reply" =~ ^[Yy]$ ]]; then
echo "Running: $INSTALL_CMD"
eval "$INSTALL_CMD"
else
echo "Aborted. '$PKG' is required to continue."
exit 1
fi
fi
# Stow all visible subdirectories
for pkg in */; do
if [[ -d "$pkg" && ! "$pkg" =~ ^\..* ]]; then
echo "${pkg%/}"
stow -D "${pkg%/}"
stow "${pkg%/}"
fi
done