78 lines
2.3 KiB
Bash
Executable File
78 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Read the dist/packages.txt and install packages using pacman
|
|
|
|
PACKAGES_FILE="dist/packages.txt"
|
|
|
|
if [ ! -f "$PACKAGES_FILE" ]; then
|
|
echo "Packages file not found: $PACKAGES_FILE"
|
|
exit 1
|
|
else
|
|
mapfile -t packages < "$PACKAGES_FILE"
|
|
pacman -Syu --noconfirm "${packages[@]}"
|
|
fi
|
|
|
|
ARCH_PACKAGE_FILE="dist/arch/packages.txt"
|
|
|
|
if [ ! -f "$ARCH_PACKAGE_FILE" ]; then
|
|
echo "Arch-specific packages file not found: $ARCH_PACKAGE_FILE"
|
|
exit 1
|
|
else
|
|
mapfile -t arch_packages < "$ARCH_PACKAGE_FILE"
|
|
pacman -Syu --noconfirm "${arch_packages[@]}"
|
|
fi
|
|
|
|
if command -v paru &> /dev/null; then
|
|
echo "paru is already installed. Reinstalling..."
|
|
else
|
|
git clone https://aur.archlinux.org/paru.git
|
|
cd paru
|
|
|
|
# Check if $USER is root and if so add a temporary non-root user for building paru
|
|
if [ "$EUID" -eq 0 ]; then
|
|
echo "Building paru as root is not allowed. Creating a temporary user for building..."
|
|
TEMP_USER="builder"
|
|
useradd -m "$TEMP_USER"
|
|
# add user to sudoers with no password
|
|
echo "$TEMP_USER ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
groupadd sudo
|
|
usermod -aG wheel "$TEMP_USER"
|
|
usermod -aG sudo "$TEMP_USER"
|
|
|
|
echo "Adding temporary user pwd"
|
|
yes | passwd -d "$TEMP_USER"
|
|
chown -R "$TEMP_USER":"$TEMP_USER" .
|
|
echo "Building paru as user $TEMP_USER..."
|
|
yes | su - "$TEMP_USER" -c "cd $(pwd) && makepkg -si --noconfirm"
|
|
else
|
|
echo "Building paru as user $USER..."
|
|
makepkg -si --noconfirm
|
|
fi
|
|
|
|
cd ..
|
|
rm -rf paru
|
|
fi
|
|
|
|
PARU_PACKAGE_FILE="dist/arch/paru.txt"
|
|
|
|
# check if Root user or TEMP_USER exists
|
|
|
|
if [ "$EUID" -eq 0 ]; then
|
|
BUILD_USER="$TEMP_USER"
|
|
else
|
|
BUILD_USER="$USER"
|
|
fi
|
|
|
|
if [ ! -f "$PARU_PACKAGE_FILE" ]; then
|
|
echo "Paru-specific packages file not found: $PARU_PACKAGE_FILE"
|
|
exit 1
|
|
else
|
|
mapfile -t paru_packages < "$PARU_PACKAGE_FILE"
|
|
echo "Installing AUR packages using paru as user $BUILD_USER..."
|
|
yes | su - "$BUILD_USER" -c "paru -S --noconfirm ${paru_packages[*]}"
|
|
yes | su - "$BUILD_USER" -c "yes | /opt/android-sdk/cmdline-tools/latest/bin/sdkmanager --licenses"
|
|
yes | su - "$BUILD_USER" -c "yes | sudo pacman -Syu --noconfirm gradle"
|
|
fi
|
|
|
|
echo "All packages installed successfully."
|