summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsetup.sh49
1 files changed, 30 insertions, 19 deletions
diff --git a/setup.sh b/setup.sh
index dec78b0..87fcc35 100755
--- a/setup.sh
+++ b/setup.sh
@@ -50,7 +50,7 @@ sudo reflector --country 'Austria' --latest 10 --sort rate --save /etc/pacman.d/
# Bootstrap Paru AUR helper if not installed
if ! command -v paru >/dev/null 2>&1; then
log_info "Paru not found. Installing dependencies and bootstrapping Paru..."
- sudo pacman -Syu --noconfirm --needed base-devel git
+ sudo pacman -Sy --noconfirm --needed base-devel git
git submodule update --init --recursive aur.archlinux.org/paru
pushd aur.archlinux.org/paru >/dev/null
@@ -61,6 +61,9 @@ else
log_info "Paru is already installed."
fi
+# Update system
+paru -Syu --noconfirm
+
# Install packages listed in 'all'
if [ -f "./all" ]; then
log_info "Installing packages from list ('all')..."
@@ -82,21 +85,31 @@ log_info "Step 2: Deploying /etc System Configurations & Security Hardening..."
sudo passwd -l root >/dev/null
# Copy basic configuration files safely
+if [ -d /etc/keyd ]; then
+ sudo cp -rv /etc/keyd /etc/keyd.bak.$(date +%s)
+else
+ sudo mkdir -pv /etc/keyd
+fi
sudo cp -v ./etc/keyd/keyd.conf /etc/keyd/
+
sudo cp --backup=numbered -v ./etc/pacman.conf /etc/
sudo chmod a+r /etc/pacman.conf
-sudo cp -v ./etc/modprobe.d/blacklist-security.conf /etc/modprobe.d/
-sudo cp -v ./etc/pam.d/system-local-login /etc/pam.d/
-sudo cp -v ./etc/pam.d/system-login /etc/pam.d/
-sudo cp -v ./etc/pam.d/greetd /etc/pam.d/
+
sudo cp --backup=numbered -v ./etc/login.defs /etc/
sudo cp --backup=numbered -v ./etc/updatedb.conf /etc/
+
sudo visudo -cf ./etc/sudoers.d/00-hardening && sudo cp -v ./etc/sudoers.d/00-hardening /etc/sudoers.d/
sudo chmod 0440 /etc/sudoers.d/00-hardening
+
sudo cp --backup=numbered -v ./etc/systemd/coredump.conf /etc/systemd/
-sudo cp -v ./etc/sysctl.d/99-security.conf /etc/sysctl.d/
sudo cp --backup=numbered -v ./etc/cups/cupsd.conf /etc/cups/
+sudo cp -v ./etc/modprobe.d/blacklist-security.conf /etc/modprobe.d/
+sudo cp -v ./etc/pam.d/system-local-login /etc/pam.d/
+sudo cp -v ./etc/pam.d/system-login /etc/pam.d/
+sudo cp -v ./etc/pam.d/greetd /etc/pam.d/
+sudo cp -v ./etc/sysctl.d/99-security.conf /etc/sysctl.d/
+
# Append tmpfs to /etc/fstab securely using tee
if [ -f "./etc/fstab" ]; then
if ! grep -q tmpfs /etc/fstab; then
@@ -224,12 +237,12 @@ done
log_info "Step 4: Deploying Dotfiles..."
# User dotfiles
-cp -v dotfiles/.bash_profile "$USER_HOME/"
+cp -v --backup=numbered ./dotfiles/.bash_profile "$USER_HOME/"
mkdir -pv "$USER_HOME/.scripts"
-cp -v ./dotfiles/.scripts/.git-prompt.sh "$USER_HOME/.scripts/"
+cp -v --backup=numbered ./dotfiles/.scripts/.git-prompt.sh "$USER_HOME/.scripts/"
rm -f "$USER_HOME/.git-prompt.sh"
-cp -v ./dotfiles/.bashrc "$USER_HOME/"
-cp -v ./dotfiles/.inputrc "$USER_HOME/"
+cp -v --backup=numbered ./dotfiles/.bashrc "$USER_HOME/"
+cp -v --backup=numbered ./dotfiles/.inputrc "$USER_HOME/"
mkdir -pv "$USER_HOME/.config/" "$USER_HOME/.local/bin/" "$USER_HOME/Pictures/"
@@ -256,10 +269,10 @@ fi
# Gtk theme
if [ -d "$USER_HOME/.config/gtk-4.0" ]; then
- mv "$USER_HOME/.config/gtk-4.0" "$USER_HOME/.config/gtk-4.0.$(date +%s)"
+ mv "$USER_HOME/.config/gtk-4.0" "$USER_HOME/.config/gtk-4.0.bak.$(date +%s)"
fi
if [ -d "$USER_HOME/.config/gtk-3.0" ]; then
- mv "$USER_HOME/.config/gtk-3.0" "$USER_HOME/.config/gtk-3.0.$(date +%s)"
+ mv "$USER_HOME/.config/gtk-3.0" "$USER_HOME/.config/gtk-3.0.bak.$(date +%s)"
fi
cp -rv ./dotfiles/.config/gtk-4.0 "$USER_HOME/.config/"
mkdir -pv "$USER_HOME/.config/gtk-3.0"
@@ -276,10 +289,7 @@ fi
cp -rv ./dotfiles/.config/qt6ct "$USER_HOME/.config/"
cp -rv ./dotfiles/.config/qt5ct "$USER_HOME/.config/"
-if [ -f "$USER_HOME/.config/cosmic-mimeapps.list" ]; then
- mv "$USER_HOME/.config/cosmic-mimeapps.list" "$USER_HOME/.config/cosmic-mimeapps.list.bak.$(date +%s)"
-fi
-cp -v ./dotfiles/.config/cosmic-mimeapps.list "$USER_HOME/.config/"
+cp -v --backup=numbered ./dotfiles/.config/cosmic-mimeapps.list "$USER_HOME/.config/"
if [ -d "$USER_HOME/.config/cosmic" ]; then
mv "$USER_HOME/.config/cosmic" "$USER_HOME/.config/cosmic.bak.$(date +%s)"
@@ -306,12 +316,13 @@ fi
# Root dotfiles deployment
log_info "Deploying root user dotfiles..."
-sudo cp -v ./dotfiles/.bash_profile /root/
+sudo cp -v --backup=numbered ./dotfiles/.bash_profile /root/
sudo mkdir -pv /root/.scripts
-sudo cp -v ./dotfiles/.scripts/.git-prompt.sh /root/.scripts/
+sudo cp -v --backup=numbered ./dotfiles/.scripts/.git-prompt.sh /root/.scripts/
sudo rm -f /root/.git-prompt.sh
-sudo cp -v ./rootfiles/.bashrc /root/
+sudo cp -v --backup=numbered ./rootfiles/.bashrc /root/
sudo mkdir -pv /root/.config/
+sudo rm -rv /root/.config/nvim
sudo cp -rv ./dotfiles/.config/nvim /root/.config/
log_success "Arch Linux post-installation setup completed successfully!"