From bcb55a8700fccd69af1c854c128146d41fbac182 Mon Sep 17 00:00:00 2001 From: emmett1 Date: Mon, 27 May 2024 01:05:56 +0800 Subject: updated --- apkg-clean | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 apkg-clean (limited to 'apkg-clean') diff --git a/apkg-clean b/apkg-clean new file mode 100755 index 0000000..06ff1c6 --- /dev/null +++ b/apkg-clean @@ -0,0 +1,85 @@ +#!/bin/sh +# +# this script is for cleanup old packages and sources +# +# usage: +# apkg-clean | xargs rm +# + +[ -f /etc/apkg.conf ] && . /etc/apkg.conf + +scan_pkgs() { + [ "$APKG_PACKAGE_DIR" ] && allpkg=$(echo $APKG_PACKAGE_DIR/*.spm 2>/dev/null) + for i in $(apkg -s); do + . $(apkg -p $i)/info + if [ ! "$APKG_PACKAGE_DIR" ]; then + for p in $(apkg -p $i)/*.spm; do + [ -f $p ] || continue + [ "${p##*/}" = "$name#$version-$release.spm" ] && continue + echo $p + done + else + allpkg=$(echo $allpkg | sed "s|$APKG_PACKAGE_DIR/$name#$version-$release.spm||") + fi + done + [ "$APKG_PACKAGE_DIR" ] && echo $allpkg | tr ' ' '\n' +} + +scan_srcs() { + [ "$APKG_SOURCE_DIR" ] && allsrc=$(echo $APKG_SOURCE_DIR/* 2>/dev/null) + for i in $(apkg -s); do + . $(apkg -p $i)/info + unset keep + for s in $source; do + s=${s%::noextract} + case $s in + *::*) keep="$keep ${s%::*}";; + */*) keep="$keep ${s##*/}";; + *) [ "$APKG_SOURCE_DIR" ] || keep="$keep $s";; + esac + done + if [ ! "$APKG_SOURCE_DIR" ]; then + (cd $(apkg -p $i) + for f in *; do + case $f in + info|depends|prebuild|build|postbuild|preinstall|postinstall|*.spm) continue;; + esac + echo $keep | tr ' ' '\n' | grep -qx $f || echo $PWD/$f + done + ) + else + for f in $keep; do + allsrc=$(echo $allsrc | sed "s|$APKG_SOURCE_DIR/$f||") + done + fi + done + [ "$APKG_SOURCE_DIR" ] && echo $allsrc | tr ' ' '\n' +} + +print_help() { + cat <