chaotic-aur / notes

Documentation on how to operate our nodes 📔
4 stars 1 forks source link

[HowTo] Search PKGBUILD of all packages #5

Open xiota opened 7 months ago

xiota commented 7 months ago

Clone AUR mirror:

git clone --depth=1 https://github.com/archlinux/aur.git

Download and unpack AUR package list:

wget "https://aur.archlinux.org/packages.gz"
gzip -dk packages.gz

Get list of git branches:

_branches=$(
  git -C aur ls-remote --heads origin \
    | sed -E 's@^.*/(\S+)$@\1@'
)

Exclude likely deleted packages. Split packages have to be treated differently. (TBD)

_branches_good=$(
  comm -12 <(sort -u packages) <(sort -u <<< "$_branches")
)

_branches_bad=$(
  comm -13 <(sort -u packages) <(sort -u <<< "$_branches")
)

Or work only with chaotic-aur packages.

_packages_chaotic=$(
  repoctl list -v | sed -E 's& .*$&&'
)
_branches_good=$(
  comm -12 <(sort -u <<< "$_packages_chaotic") <(sort -u <<< "$_branches")
)
_branches_bad=$(
  comm -13 <(sort -u <<< "$_packages_chaotic") <(sort -u <<< "$_branches")
)

Fix fetch paths (make sure they end with *), and fetch. This takes a while. Repo directory will expand to 2.4GiB.

nano aur/.git/config
git -C aur fetch --all

Search branches. In this example, searching for exit.

_regex='^.*\bexit\b.*$'
sed 's&^&origin/&' <<< "$_branches_good" | xargs -P $(nproc) -I {} git -C aur grep -m1 "$_regex" {} -- PKGBUILD