forked from kiss-community/kiss
800d3ac854
Commit d94c811
changed `sort -u` to `uniq -u`; these are not equivalent.
`uniq -u` suppresses all duplicate lines, but `sort -u` removes all but
one. In the case of there being no command-line args, PWD is taken as
the package, and if that package is in a repo already in KISS_PATH, the
repo will be in KISS_PATH twice. This will cause the `kiss search`
command to give two entries for PWD, and `uniq -u` removes both.
Revert to `sort -u` to keep one of those entries.
If the package in PWD is not installed, there will be not entries left;
if it is installed, kiss-maintainer will try to get the history from
/var/db/kiss/installed/pkg, which is not a git repo.
Example of the incorrect behaviour:
KISS_PATH=/home/me/repo/core
PWD=/home/me/repo/core/musl
$ sh -x /usr/bin/kiss-maintainer
+ '[' ]
+ export 'KISS_PATH=/home/me/repo/core::/home/me/repo/core'
+ set -- musl
+ kiss search musl
+ uniq -u
+ read -r repo
+ read -r repo
+ cd /var/db/kiss/installed/musl
+ git log -1 version
+ m=
+ :
+ m=
+ m=
+ '[' ]
+ continue
+ read -r repo
(no output)
19 lines
419 B
Bash
Executable File
19 lines
419 B
Bash
Executable File
#!/bin/sh -ef
|
|
# Find the maintainer of a package
|
|
|
|
# Use the current directory as the package name if no package is given.
|
|
[ "$1" ] || {
|
|
export KISS_PATH=${PWD%/*}:$KISS_PATH
|
|
set -- "${PWD##*/}"
|
|
}
|
|
|
|
kiss search "$@" | sort -u | while read -r repo; do cd "$repo"
|
|
m=$(git log -1 version 2>/dev/null) ||:
|
|
m=${m##*Author: }
|
|
m=${m%%>*}
|
|
|
|
[ "$m" ] || continue
|
|
|
|
printf '=> %s\n%s>\n' "$PWD" "$m"
|
|
done
|