From 3c0a85b5e45410836441d6957c68d1784f15a1f0 Mon Sep 17 00:00:00 2001 From: emmett1 Date: Sun, 2 Feb 2025 15:06:46 +0800 Subject: added (-v) verbose option --- apkg | 46 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/apkg b/apkg index e888483..ea92e55 100755 --- a/apkg +++ b/apkg @@ -514,8 +514,19 @@ pkg_search() { msg "No repo configured." exit 1 fi - [ "$1" ] && grep=grep || grep=cat - find $APKG_REPO -type f -name abuild 2>/dev/null | sed 's|/abuild||' | rev | awk -F / '{print $1}' | rev | $grep $1 + if [ "$pkg" ]; then + for p in $pkg; do + grep="$grep -e $p" + done + grep="grep $grep" + else + grep=cat + fi + [ "$verbose" ] && { + find $APKG_REPO -type f -name abuild 2>/dev/null | sed 's|/abuild||' | rev | awk -F / '{print $1}' | rev | $grep | while read line; do printf "$line "; awk -F'=' '/^version/ {print $2}' $($APKG -p $line)/abuild ; done + } || { + find $APKG_REPO -type f -name abuild 2>/dev/null | sed 's|/abuild||' | rev | awk -F / '{print $1}' | rev | $grep + } } pkg_depinstalll() { @@ -661,8 +672,19 @@ pkg_trigger() { } pkg_allinstalled() { - [ "$1" ] && grep="grep $1" || grep=cat - ls -1 $SPM_PKGDB | $grep + if [ "$pkg" ]; then + for p in $pkg; do + grep="$grep -e $p" + done + grep="grep $grep" + else + grep=cat + fi + [ "$verbose" ] && { + ls -1 $SPM_PKGDB | $grep | while read line; do printf "$line "; head -n1 $SPM_PKGDB/$line ; done + } || { + ls -1 $SPM_PKGDB | $grep + } } checksum_src() { @@ -791,10 +813,10 @@ parseopts() { -t) pkg_trigger "$(parsesubopt "$@")"; exit 0;; -U) pkg_sysup; exit 0;; -d) pkg_depends "$2"; exit 0;; - -s) pkg_search "$2"; exit 0;; + -s) search=1;; -S) pkg_fsearch "$2"; exit 0;; -j) pkg_dependents "$2"; exit 0;; - -a) pkg_allinstalled "$2"; exit 0;; + -a) allinstalled=1;; -h) apkg_help; exit 0;; -l) pkg_outdate; exit 0;; -g) updatecsum=1;; @@ -803,6 +825,7 @@ parseopts() { -i) install=1;; -u) upgrade=1;; -o) downloadonly=1;; + -v) verbose=1;; -*) msg "invalid option '$1'"; exit 1;; *) pkg="$pkg $1";; esac @@ -831,6 +854,7 @@ options: -k update package files -s search packages -S search files + -v be verbose -h print this help message environment variables: @@ -847,6 +871,16 @@ main() { parseopts "$@" set -- $(updateopts "$@") + if [ "$search" ]; then + pkg_search $@ + exit 0 + fi + + if [ "$allinstalled" ]; then + pkg_allinstalled $@ + exit 0 + fi + for d in $APKG_PACKAGE_DIR $APKG_SOURCE_DIR $APKG_WORK_DIR $APKG_LOG_DIR; do [ -d "$d" ] || { msg "Directory '$d' not exist"; exit 1; } [ -w "$d" ] || { msg "Directory '$d' dont have write access"; exit 1; } -- cgit v1.2.3