3
0
mirror of https://git.launchpad.net/ubuntu-dev-tools synced 2025-03-13 08:01:09 +00:00
ubuntu-dev-tools/update-maintainer

64 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
#update-maintainer
#small - thus not perfect - script to update maintainer field in ubuntu packages
#written and (c) 2007 by Albin Tonnerre <lut1n.tne@gmail.com> (Lutin)
#this code is under the GNU GPL V2 licence
if [ ${#@} -ge 1 ]; then
for argv in "$@"; do
param=`echo $argv | cut -d'=' -f1`
value=`echo $argv | cut -d'=' -f2`
case $param in
"--path") path="$value" ;;
"--section") section=$value ;;
"--help") echo -e "Options: \n --path=PATH : specify the path of the source folder\n --section=SECTION : specify the section of the package (if the package is not yet in the archive or if you don't have the gutsy source repo in your sources.list)"; exit 0 ;;
*) echo "Bad parameter, please use --help" >&2; exit 1 ;;
esac
done
fi
cd ${path-.}
# look for the debian directory
if [ -f debian/control -a -f debian/changelog ]; then
DEBIANDIR=debian
elif [ -f control -a -f changelog ]; then
DEBIANDIR=.
else
echo "Please run that script in the source folder" >&2 && exit 1
fi
IGNORE_DOMAINS="ubuntu\.com|ubuntu\.com\.au"
[ -n "`head -n 1 $DEBIANDIR/changelog | grep -E "\(*ubuntu.*\)"`" ] &&
[ -z "`grep -E "^Maintainer: .*($IGNORE_DOMAINS)>" $DEBIANDIR/control`" ] || \
{ echo "Not an ubuntu package or already maintained by the ubuntu team" >&2 && \
exit 1; }
mail=$(grep -E "^Maintainer" $DEBIANDIR/control | sed -r 's/.*<(.*)>/\1/')
case $mail in
"adconrad@0c3.net") email="Adam Conrad <adconrad@ubuntu.com>" ;;
"mpitt@debian.org") email="Martin Pitt <martin.pitt@ubuntu.com>" ;;
esac
if [ -z "$email" ]; then
if [ -z "$section" ]; then
DISTRO=$(head -n 1 $DEBIANDIR/changelog|sed -r 's/.*\) (.*);.*/\1/' | cut -d'-' -f1)
pkgline=$(apt-cache madison `head -n 1 $DEBIANDIR/changelog | cut -d' ' \
-f1`| grep -m 1 "$DISTRO.*Sources")
[ -z "$pkgline" ] && echo "You don't have $DISTRO in your source repos" \
>&2 && exit 1
section=$(echo $pkgline | grep -Eo "main|universe|multiverse|restricted")
fi
case $section in
"main"|"restricted") email="Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>" ;;
"universe"|"multiverse") email="Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>" ;;
esac
fi
sed -ri "s/(^Maintainer:) (.*)/\1 $email\nXSBC-Original-\1 \2/" $DEBIANDIR/control
[ -f $DEBIANDIR/control.in ] && sed -ri "s/(^Maintainer:) (.*)/\1 $email\nXSBC-Original-\1 \2/" $DEBIANDIR/control.in
dch "Modify Maintainer value to match Debian-Maintainer-Field Spec"
echo "Maintainer changed to $email"