getmaintainer.sh 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/bin/sh
  2. if [ $# -ne 1 ]; then
  3. echo >&2 "Usage: $0 PATH"
  4. echo >&2 "Show the primary and secondary maintainers for a given path"
  5. exit 1
  6. fi
  7. set -e
  8. DEST=$1
  9. DESTFILE=""
  10. if [ ! -d $DEST ]; then
  11. DESTFILE=$(basename $DEST)
  12. DEST=$(dirname $DEST)
  13. fi
  14. MAINTAINERS=()
  15. cd $DEST
  16. while true; do
  17. if [ -e ./MAINTAINERS ]; then
  18. {
  19. while read line; do
  20. re='^([^:]*): *(.*)$'
  21. file=$(echo $line | sed -E -n "s/$re/\1/p")
  22. if [ ! -z "$file" ]; then
  23. if [ "$file" = "$DESTFILE" ]; then
  24. echo "Override: $line"
  25. maintainer=$(echo $line | sed -E -n "s/$re/\2/p")
  26. MAINTAINERS=("$maintainer" "${MAINTAINERS[@]}")
  27. fi
  28. else
  29. MAINTAINERS+=("$line");
  30. fi
  31. done;
  32. } < MAINTAINERS
  33. fi
  34. if [ -d .git ]; then
  35. break
  36. fi
  37. if [ "$(pwd)" = "/" ]; then
  38. break
  39. fi
  40. cd ..
  41. done
  42. PRIMARY="${MAINTAINERS[0]}"
  43. PRIMARY_FIRSTNAME=$(echo $PRIMARY | cut -d' ' -f1)
  44. firstname() {
  45. echo $1 | cut -d' ' -f1
  46. }
  47. echo "--- $PRIMARY is the PRIMARY MAINTAINER of $1. Assign pull requests to him."
  48. echo "$(firstname $PRIMARY) may assign pull requests to the following secondary maintainers:"
  49. for SECONDARY in "${MAINTAINERS[@]:1}"; do
  50. echo "--- $SECONDARY"
  51. done