59 lines
1.1 KiB
Bash
59 lines
1.1 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
if [ $# -ne 1 ]; then
|
||
|
echo >&2 "Usage: $0 PATH"
|
||
|
echo >&2 "Show the primary and secondary maintainers for a given path"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
set -e
|
||
|
|
||
|
DEST=$1
|
||
|
DESTFILE=""
|
||
|
if [ ! -d $DEST ]; then
|
||
|
DESTFILE=$(basename $DEST)
|
||
|
DEST=$(dirname $DEST)
|
||
|
fi
|
||
|
|
||
|
MAINTAINERS=()
|
||
|
cd $DEST
|
||
|
while true; do
|
||
|
if [ -e ./MAINTAINERS ]; then
|
||
|
{
|
||
|
while read line; do
|
||
|
re='^([^:]*): *(.*)$'
|
||
|
file=$(echo $line | sed -E -n "s/$re/\1/p")
|
||
|
if [ ! -z "$file" ]; then
|
||
|
if [ "$file" = "$DESTFILE" ]; then
|
||
|
echo "Override: $line"
|
||
|
maintainer=$(echo $line | sed -E -n "s/$re/\2/p")
|
||
|
MAINTAINERS=("$maintainer" "${MAINTAINERS[@]}")
|
||
|
fi
|
||
|
else
|
||
|
MAINTAINERS+=("$line");
|
||
|
fi
|
||
|
done;
|
||
|
} < MAINTAINERS
|
||
|
fi
|
||
|
if [ -d .git ]; then
|
||
|
break
|
||
|
fi
|
||
|
if [ "$(pwd)" = "/" ]; then
|
||
|
break
|
||
|
fi
|
||
|
cd ..
|
||
|
done
|
||
|
|
||
|
PRIMARY="${MAINTAINERS[0]}"
|
||
|
PRIMARY_FIRSTNAME=$(echo $PRIMARY | cut -d' ' -f1)
|
||
|
|
||
|
firstname() {
|
||
|
echo $1 | cut -d' ' -f1
|
||
|
}
|
||
|
|
||
|
echo "--- $PRIMARY is the PRIMARY MAINTAINER of $1. Assign pull requests to him."
|
||
|
echo "$(firstname $PRIMARY) may assign pull requests to the following secondary maintainers:"
|
||
|
for SECONDARY in "${MAINTAINERS[@]:1}"; do
|
||
|
echo "--- $SECONDARY"
|
||
|
done
|