#!/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