#!/bin/bash #update-maintainer #small - thus not perfect - script to update maintainer field in ubuntu packages #written and (c) 2007 by Albin Tonnerre (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 " ;; "mpitt@debian.org") email="Martin Pitt " ;; 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 " ;; "universe"|"multiverse") email="Ubuntu MOTU Developers " ;; 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"