#!/bin/bash

# omarchy:summary=Show a fuzzy-finder TUI for picking new Fedora packages to install.
# omarchy:requires-sudo=true

fzf_args=(
  --multi
  --preview 'dnf info {1}'
  --preview-label='alt-p: toggle description, alt-j/k: scroll, tab: multi-select'
  --preview-label-pos='bottom'
  --preview-window 'down:65%:wrap'
  --bind 'alt-p:toggle-preview'
  --bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
  --bind 'alt-k:preview-up,alt-j:preview-down'
  --color 'pointer:green,marker:green'
)

# NOTE: a bare `dnf list available` prints nothing on dnf5 (it wants a
# package-spec pattern), so the candidate list comes from repoquery: one
# plain name per line, no header, no arch suffix.
pkg_names=$(dnf repoquery --available --queryformat '%{name}\n' 2>/dev/null | sort -u | fzf "${fzf_args[@]}")

if [[ -n $pkg_names ]]; then
  source omarchy-sudo-keepalive

  # Convert newline-separated selections to space-separated for dnf
  echo "$pkg_names" | tr '\n' ' ' | xargs sudo dnf install -y
  omarchy-show-done $?
fi
