summaryrefslogtreecommitdiff
path: root/setup.sh
diff options
context:
space:
mode:
authorDenis Chevalier <perso@denischevalier.fr>2026-08-07 11:03:17 +0200
committerDenis Chevalier <perso@denischevalier.fr>2026-08-07 11:03:17 +0200
commit3afa56220b73a7f01acee9fc069fb40d328d3797 (patch)
treeaf110b7482c42245c965846eec16cdbb2cbb4538 /setup.sh
parent24cf4cd9daea0b45924f8582fd4d6bd5da93444a (diff)
downloadpostinstall-3afa56220b73a7f01acee9fc069fb40d328d3797.tar.gz
postinstall-3afa56220b73a7f01acee9fc069fb40d328d3797.tar.bz2
postinstall-3afa56220b73a7f01acee9fc069fb40d328d3797.zip
add initial system update and improve backups
Diffstat (limited to 'setup.sh')
-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!"