Last active 1732782061

List of available updates for void (orphan/mypkg/no version) packages installed locally.

Revision 5115f61a772ee3a327712069f55ba3dec7520178

void-orphan-pkg.sh Raw
1#!/bin/bash
2# List of available updates for unmaintained void packages installed locally
3
4DISTURL="https://repo-default.voidlinux.org/void-updates/void-updates/updates_orphan%40voidlinux.org.txt"
5DISTFILE="updates_orphan.txt"
6
7wget --hsts-file="$XDG_CACHE_HOME/wget-hsts" --output-document ${DISTFILE} --quiet ${DISTURL}
8
9# filter out uninterested packages
10# opinionated, `lib` could be a bit overkill
11grep -vE 'apache-|avr-|cargo-|cinnamon|gnome-|gst-|jenkins|lib|linux|live555|nemo-|pantheon-|perl-|python3-grpcio|python3-google|ruby-|R-cran-' ${DISTFILE} | sponge ${DISTFILE}
12
13# dedup, leave only the highest available version
14# side effect: order is slightly different
15awk '!seen[$1]++ {line[$1] = $0} {line[$1] = $0} END {for (pkg in line) print line[pkg]}' ${DISTFILE} | sort | sponge ${DISTFILE}
16
17# dedup again, leave only (manually) installed packages
18xpkg -m > installed.txt
19# query all installed packages (including core packages, more complete, but MUCH slower)
20# xbps-query -l | awk '{ print $2 }' | xargs -n1 xbps-uhelper getpkgname > installed.txt
21awk 'NR==FNR{installed[$1]; next} $1 in installed' installed.txt ${DISTFILE} | sort | sponge ${DISTFILE}
22rm installed.txt
23
24# TODO: filter out existing update branches
25# git branch --list |awk '{print $1}' > branches.txt
26# awk 'NR==FNR{branches[$1]; next} {for (b in branches) if ($1 ~ b) next} {print}' branches.txt ${DISTFILE}
27