From 03c4817b7865076156dbdfc3a03e1126d2f94293 Mon Sep 17 00:00:00 2001 From: David Thurstenson Date: Fri, 5 Feb 2021 12:31:10 -0600 Subject: [PATCH] Initial commit --- PKGBUILD | 22 ++++++++++++++++++++++ aur-remove | 12 ++++++++++++ aur-sync-devel | 5 +++++ aur-vercmp-devel | 27 +++++++++++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 PKGBUILD create mode 100755 aur-remove create mode 100755 aur-sync-devel create mode 100755 aur-vercmp-devel diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 0000000..b59048e --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,22 @@ +# Maintainer: David Thurstenson +pkgname=tl-aurutils-helpers +pkgver=0.1 +pkgrel=1 +pkgdesc="Scripts for automating common aurutils tasks" +arch=('any') +url="https://git.thurstylark.com/$pkgname.git/" +license=('GPL') +depends=('aurutils') +source=("aur-remove" + "aur-sync-devel" + "aur-vercmp-devel") +md5sums=('e6daee721038a55017b84cf32aa081bb' + 'b57425fd69e51200a0de40354b127e32' + '19fb39b8b745dc3ecea1df8d2eca9307') + +package() { + for i in ${source[@]}; do + install -Dm655 $i \ + ${pkgdir}/usr/bin/$i + done +} diff --git a/aur-remove b/aur-remove new file mode 100755 index 0000000..94b462d --- /dev/null +++ b/aur-remove @@ -0,0 +1,12 @@ +#!/bin/sh -- +# aur-remove - remove listed packages from all local repositories + +if [ "$#" -eq 0 ]; then + printf 'usage: aur remove package [package ...]\n' >&2 + exit 1 +fi + +aur repo --path-list | while read -r repo_path; do + repo-remove "$repo_path" "$@" + paccache -c "${repo_path%/*}" -rvk0 "$@" +done diff --git a/aur-sync-devel b/aur-sync-devel new file mode 100755 index 0000000..e3fd9e2 --- /dev/null +++ b/aur-sync-devel @@ -0,0 +1,5 @@ +#!/bin/bash + +mapfile -t packages < <(aur vercmp-devel | cut -d: -f1) + +aur sync "${packages[@]}" --no-ver-argv diff --git a/aur-vercmp-devel b/aur-vercmp-devel new file mode 100755 index 0000000..3956faa --- /dev/null +++ b/aur-vercmp-devel @@ -0,0 +1,27 @@ +#!/bin/bash +XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache} +AURDEST=${AURDEST:-$XDG_CACHE_HOME/aurutils/sync} +AURVCS=${AURVCS:-.*-(cvs|svn|git|hg|bzr|darcs)$} + +filter_vcs() { + awk -v "mask=$AURVCS" '$1 ~ mask {print $1}' "$@" +} + +# Note that valid PKGBUILDs cannot contain \n in pkgname. +get_latest_revision() { + grep -Fxf - <(printf '%s\n' *) | xargs -r aur srcver +} + +db_tmp=$(mktemp) +trap 'rm -rf "$db_tmp"' EXIT + +# Retrieve a list of the local repository contents. The repository +# can be specified with the usual aur-repo arguments. +aur repo --list "$@" >"$db_tmp" + +# Find VCS packages that are outdated according to aur-srcver. +# This checks out the latest revision for existing source directories, +# assuming the PKGBUILD has been viewed priorly. +if cd "$AURDEST"; then + aur vercmp -p <(filter_vcs "$db_tmp" | get_latest_revision) <"$db_tmp" +fi