howdy-arch-installer/howdy.sh
zeevdiukman f46a72f27f 1
2025-12-18 10:46:15 +02:00

63 lines
No EOL
2 KiB
Bash
Executable file

#!/bin/bash
# --- 1. Safety Check: Ensure NOT running as root ---
if [ "$EUID" -eq 0 ]; then
echo -e "\033[0;31mERROR: Do not run this script as root (sudo).\033[0m"
echo "The build process uses 'fakeroot' which conflicts with actual root privileges."
echo "Please run as a normal user: ./install_howdy_safe.sh"
exit 1
fi
# --- Configuration ---
PKG_DLIB="python-dlib"
PKG_HOWDY="howdy-git"
AUR_HELPER="yay"
# --- Colors ---
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${GREEN}=== Howdy 3 Installer (Fakeroot/Non-Root Safe Mode) ===${NC}"
# --- 2. Install Dependencies (Requires sudo here only) ---
echo -e "${YELLOW}[1/5] Requesting sudo for dependency installation...${NC}"
sudo pacman -Sy --needed base-devel git v4l-utils python-pip || exit 1
# --- 3. Install AUR Helper (if missing) ---
if ! command -v $AUR_HELPER &> /dev/null; then
echo -e "${YELLOW}[2/5] Installing yay...${NC}"
rm -rf /tmp/yay-bin
git clone https://aur.archlinux.org/yay-bin.git /tmp/yay-bin
cd /tmp/yay-bin
# makepkg handles fakeroot automatically here
makepkg -si --noconfirm
cd ~
fi
# --- 4. Build python-dlib (No CUDA, using proper fakeroot) ---
echo -e "${YELLOW}[3/5] Building python-dlib (CPU Only)...${NC}"
rm -rf /tmp/$PKG_DLIB
git clone https://aur.archlinux.org/$PKG_DLIB.git /tmp/$PKG_DLIB
cd /tmp/$PKG_DLIB
# Patch for No-CUDA
sed -i 's/_build_cuda=1/_build_cuda=0/g' PKGBUILD
if ! grep -q "_build_cuda=0" PKGBUILD; then
sed -i '2i_build_cuda=0' PKGBUILD
fi
# MAKEPKG:
# -s: Sync deps (uses sudo internally just for installs)
# -i: Install (uses sudo internally just for installs)
# The build itself happens in a fakeroot environment automatically.
makepkg -si --noconfirm
# --- 5. Install Howdy ---
echo -e "${YELLOW}[4/5] Installing Howdy...${NC}"
$AUR_HELPER -S --needed $PKG_HOWDY
# --- 6. Final Config ---
echo -e "${YELLOW}[5/5] Setup Complete.${NC}"
echo "Run 'sudo howdy config' and 'sudo howdy add' to finish."
echo "Don't forget to edit /etc/pam.d/sudo with: auth sufficient pam_howdy.so"