feat: paru auto-install + ASCII Header + Continue-Prompt
- paru wird jetzt in detect_environment() auf frischen Systemen installiert
(vorher nur in preflight, das bei --fresh nie durchlief)
- install_aur_helper() von preflight nach utils.sh verschoben (global verfügbar)
- Header von Cherokee-Zeichen ('Ꮎ Ꮇ Ꭼ Ꮢ Ꮎ Ꮑ') auf ASCII ('O M E R O N')
umgestellt — Cherokee zeigte auf manchen Terminals Fragezeichen
- Continue with installation? Prompt nach Banner als erster interaktiver Schritt
- basic mode header jetzt sauberes ASCII (===== statt Box-Zeichen)
This commit is contained in:
27
install.sh
27
install.sh
@@ -99,7 +99,7 @@ detect_environment() {
|
||||
|
||||
if ((!OMERON_HAS_GUM)) && have pacman; then
|
||||
printf '\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m\n'
|
||||
printf '\033[1;36m Ꮎ Ꮇ Ꭼ Ꮢ Ꮎ Ꮑ — Modular System Setup Framework\033[0m\n'
|
||||
printf '\033[1;36m O M E R O N — Modular System Setup Framework\033[0m\n'
|
||||
printf '\033[1;36m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\033[0m\n'
|
||||
printf '\n'
|
||||
printf ' \033[1;33mgum is not installed.\033[0m Installing it enables the full TUI experience.\n'
|
||||
@@ -125,9 +125,14 @@ detect_environment() {
|
||||
fi
|
||||
fi
|
||||
|
||||
if ((OMERON_FRESH_INSTALL)) && ((!OMERON_HAS_GUM)) && have pacman; then
|
||||
if ((OMERON_FRESH_INSTALL)); then
|
||||
if ((!OMERON_HAS_GUM)) && have pacman; then
|
||||
tui_install_gum 2>/dev/null || true
|
||||
fi
|
||||
if ! have paru && ! have yay; then
|
||||
install_aur_helper
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
collect_modules() {
|
||||
@@ -203,14 +208,10 @@ collect_all_interactive() {
|
||||
}
|
||||
|
||||
show_banner() {
|
||||
tui_header " Ꮎ Ꮇ Ꭼ Ꮢ Ꮎ Ꮑ "
|
||||
tui_info "Modular System Setup Framework"
|
||||
tui_info "Arch / Hyprland / CachyOS"
|
||||
tui_header "O M E R O N — Modular System Setup"
|
||||
printf '\n'
|
||||
|
||||
if ((OMERON_FRESH_INSTALL)); then
|
||||
tui_warn "FRESH INSTALL MODE"
|
||||
tui_info "Will install Hyprland, GPU drivers, and all dependencies."
|
||||
tui_info "Fresh install: Hyprland + GPU drivers + all dependencies"
|
||||
printf '\n'
|
||||
fi
|
||||
}
|
||||
@@ -230,6 +231,14 @@ main() {
|
||||
|
||||
show_banner
|
||||
|
||||
tui_separator
|
||||
printf '\n'
|
||||
if ! tui_confirm "Continue with installation"; then
|
||||
tui_info "Installation cancelled."
|
||||
exit 0
|
||||
fi
|
||||
printf '\n'
|
||||
|
||||
local modules_to_run=()
|
||||
if ((${#RUN_MODULES[@]})); then
|
||||
mapfile -t modules_to_run < <(collect_modules)
|
||||
@@ -268,7 +277,7 @@ main() {
|
||||
done
|
||||
|
||||
printf '\n'
|
||||
tui_header " Ꮎ Ꮇ Ꭼ Ꮢ Ꮎ Ꮑ "
|
||||
tui_header "O M E R O N — Done"
|
||||
tui_success "Installation Complete!"
|
||||
printf '\n'
|
||||
tui_info "Log: ${OMERON_LOG_FILE}"
|
||||
|
||||
@@ -187,20 +187,17 @@ tui_spin() {
|
||||
|
||||
tui_header() {
|
||||
local title="$(_strip_format "$1")"
|
||||
local len="${#title}"
|
||||
|
||||
if [[ "$OMERON_TUI_MODE" == "gum" ]]; then
|
||||
gum style --foreground 212 --border-foreground 212 --border double --align center --width 60 --margin "1 2" --padding "1 2" "$title"
|
||||
else
|
||||
local width=50
|
||||
local pad=$(( (width - len) / 2 ))
|
||||
[[ $pad -lt 2 ]] && pad=2
|
||||
|
||||
local line
|
||||
printf -v line '%*s' "$width" '' && line="${line// /═}"
|
||||
printf -v line '%*s' "$width" '' && line="${line// /#}"
|
||||
line="${line//#/=}"
|
||||
printf '\n'
|
||||
printf '\033[1;36m%s\033[0m\n' "$line"
|
||||
printf '\033[1;36m║\033[0m%*s%s%*s\033[1;36m║\033[0m\n' $pad '' "$title" $((width - pad - len)) ''
|
||||
printf '\033[1;36m %s\033[0m\n' "$title"
|
||||
printf '\033[1;36m%s\033[0m\n' "$line"
|
||||
printf '\n'
|
||||
fi
|
||||
|
||||
32
lib/utils.sh
32
lib/utils.sh
@@ -261,3 +261,35 @@ system_summary() {
|
||||
└─────────────────────────────────────────────┘
|
||||
SUMMARY
|
||||
}
|
||||
|
||||
install_aur_helper() {
|
||||
if have paru || have yay; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
sudo_run pacman -S --needed --noconfirm git base-devel
|
||||
fi
|
||||
|
||||
local build_dir
|
||||
build_dir="$(mktemp -d)"
|
||||
|
||||
sudo_run pacman -S --needed --noconfirm rustup 2>/dev/null || true
|
||||
|
||||
if have rustup; then
|
||||
rustup default stable >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
if git clone https://aur.archlinux.org/paru.git "$build_dir/paru" 2>/dev/null; then
|
||||
(cd "$build_dir/paru" && makepkg -si --needed --noconfirm) 2>&1 | tail -5 || {
|
||||
tui_warn "paru build failed, trying yay..."
|
||||
if git clone https://aur.archlinux.org/yay.git "$build_dir/yay" 2>/dev/null; then
|
||||
(cd "$build_dir/yay" && makepkg -si --needed --noconfirm) 2>&1 | tail -5 || {
|
||||
tui_warn "yay build failed too. Install manually: paru -S paru-bin"
|
||||
}
|
||||
fi
|
||||
}
|
||||
fi
|
||||
|
||||
rm -rf "$build_dir"
|
||||
}
|
||||
|
||||
@@ -54,7 +54,6 @@ module_main() {
|
||||
fi
|
||||
|
||||
if ! have paru && ! have yay; then
|
||||
tui_info "No AUR helper found. Installing paru..."
|
||||
install_aur_helper
|
||||
fi
|
||||
|
||||
@@ -69,35 +68,4 @@ module_main() {
|
||||
fi
|
||||
}
|
||||
|
||||
install_aur_helper() {
|
||||
if have paru || have yay; then
|
||||
return 0
|
||||
fi
|
||||
|
||||
if ! command -v git >/dev/null 2>&1; then
|
||||
sudo_run pacman -S --needed --noconfirm git base-devel
|
||||
fi
|
||||
|
||||
local build_dir
|
||||
build_dir="$(mktemp -d)"
|
||||
|
||||
tui_info "Building paru from AUR..."
|
||||
sudo_run pacman -S --needed --noconfirm rustup 2>/dev/null || true
|
||||
|
||||
if have rustup; then
|
||||
rustup default stable >/dev/null 2>&1 || true
|
||||
fi
|
||||
|
||||
if git clone https://aur.archlinux.org/paru.git "$build_dir/paru" 2>/dev/null; then
|
||||
(cd "$build_dir/paru" && makepkg -si --needed --noconfirm) 2>&1 | tail -5 || {
|
||||
tui_warn "paru build failed, trying yay..."
|
||||
if git clone https://aur.archlinux.org/yay.git "$build_dir/yay" 2>/dev/null; then
|
||||
(cd "$build_dir/yay" && makepkg -si --needed --noconfirm) 2>&1 | tail -5 || {
|
||||
tui_warn "yay build failed too. Install manually: paru -S paru-bin"
|
||||
}
|
||||
fi
|
||||
}
|
||||
fi
|
||||
|
||||
rm -rf "$build_dir"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user