From b9a8f9fc28856a569821c0337d304e3065a73f4f Mon Sep 17 00:00:00 2001 From: wael <40663@proton.me> Date: Sat, 1 Oct 2022 12:51:52 +0300 Subject: [PATCH] kiss-repo(rev)depends: same utility to search in repositories instead --- contrib/kiss-repodepends | 16 ++++++++++++++++ contrib/kiss-reporevdepends | 19 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100755 contrib/kiss-repodepends create mode 100755 contrib/kiss-reporevdepends diff --git a/contrib/kiss-repodepends b/contrib/kiss-repodepends new file mode 100755 index 0000000..83365a2 --- /dev/null +++ b/contrib/kiss-repodepends @@ -0,0 +1,16 @@ +#!/bin/sh -ef +# Display a package's dependencies in repositories + +pkg=${1:-"${PWD##*/}"} + +kiss search "$pkg" >/dev/null || { + printf 'usage: kiss-depends [pkg]\n' >&2 + exit 1 +} + +kiss search "$pkg" | while read -r pkgpath; do + printf '=> %s\n' "$pkgpath" + while read -r dep mak || [ "$dep" ]; do + printf '%s%s\n' "$dep" "${mak:+ "$mak"}" + done 2>/dev/null < "$pkgpath/depends" +done diff --git a/contrib/kiss-reporevdepends b/contrib/kiss-reporevdepends new file mode 100755 index 0000000..ccd9610 --- /dev/null +++ b/contrib/kiss-reporevdepends @@ -0,0 +1,19 @@ +#!/bin/sh +# Display packages in all repositories which depend on a package + +[ "$1" ] || set -- "${PWD##*/}" + +suffix () { + case "$1" in *"$2") return 0; esac; return 1 +} + +IFS=: +for repo in $KISS_PATH; do + # remove trailing slashes + while suffix "$repo" /; do repo="${repo%/}"; done + gitdir="$(git -C "$repo" rev-parse --show-toplevel 2>/dev/null || echo "$repo")" + case "$gitdir" in "$repo") unset prefix ;; *) prefix="${repo##*/}/" ;; esac + + cd "$gitdir/.." || continue + grep -E "^$1([[:space:]]|$)" -- "${gitdir##*/}/$prefix"*/depends 2>/dev/null ||: +done