r7923 - in /scripts/qa: homepagecheck packagecheck xvcscheck

gregoa-guest at users.alioth.debian.org gregoa-guest at users.alioth.debian.org
Mon Sep 24 16:16:57 UTC 2007


Author: gregoa-guest
Date: Mon Sep 24 16:16:56 2007
New Revision: 7923

URL: http://svn.debian.org/wsvn/?sc=1&rev=7923
Log:
merge scripts xvcscheck and homepagecheck into new script packagecheck; grep Build.PL for modulename too; add entries to debian/changelog on changes

Added:
    scripts/qa/packagecheck   (with props)
Removed:
    scripts/qa/homepagecheck
    scripts/qa/xvcscheck

Added: scripts/qa/packagecheck
URL: http://svn.debian.org/wsvn/scripts/qa/packagecheck?rev=7923&op=file
==============================================================================
--- scripts/qa/packagecheck (added)
+++ scripts/qa/packagecheck Mon Sep 24 16:16:56 2007
@@ -1,0 +1,104 @@
+#!/bin/sh
+
+# Copyright 2007 gregor herrmann <gregor+debian at comodo.priv.at>
+# Released under the terms of the GNU GPL version 2
+#
+# 1) Checks for and adds missing XS-Vcs-(Svn|Browser) fields 
+# 2) Checks for Homepage: field
+# in all debian/control files in trunk/
+# To be run one directory above trunk/
+
+CHANGED=0
+
+echo "Running svn up trunk/ ..."
+svn up trunk/
+
+echo "Grepping through packages ..."
+for p in $(ls trunk -1); do 
+  [ "$p" = "build-area" ] && continue
+  [ "$p" = "tarballs" ] && continue
+  
+  # 0) reset variables
+  OLDHP=
+  PERLNAME=
+  NEWHP=
+  
+  # 1) check for and add missing XS-Vcs-Svn field
+	if ! grep XS-Vcs-Svn trunk/$p/debian/control > /dev/null; then
+		echo "$p: adding missing XS-Vcs-Svn field"
+		perl -pi -e "s;(Standards-Version:.+);\$1\nXS-Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/$p/;" trunk/$p/debian/control
+		DEBCHANGE_RELEASE_HEURISTIC=changelog dch --changelog trunk/$p/debian/changelog "Add missing XS-Vcs-Svn field to debian/control."
+		CHANGED=1
+	fi
+
+  # 2) check for and add missing XS-Vcs-Browser field
+	if ! grep XS-Vcs-Browser trunk/$p/debian/control > /dev/null; then
+		echo "$p: adding missing XS-Vcs-Browser field"
+		perl -pi -e "s;(XS-Vcs-Svn:.+);\$1\nXS-Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/$p/;" trunk/$p/debian/control
+		DEBCHANGE_RELEASE_HEURISTIC=changelog dch --changelog trunk/$p/debian/changelog "Add missing XS-Vcs-Browser field to debian/control."
+		CHANGED=1
+	fi
+
+	# 3) check for and remove old Homepage from long description
+	OLDHP=$(egrep "^  Homepage: " trunk/$p/debian/control | egrep -o "http.+")
+	if [ -n "$OLDHP" ] ; then
+		echo "$p: removing Homepage: pseudo-field from Description"
+		perl -e "undef \$/; my \$buf=<STDIN>; \$buf =~ s/\n \.\n  Homepage: .*//; print \$buf" < trunk/$p/debian/control > trunk/$p/debian/control.new
+		mv trunk/$p/debian/control.new trunk/$p/debian/control
+		DEBCHANGE_RELEASE_HEURISTIC=changelog dch --changelog trunk/$p/debian/changelog "Remove Homepage: pseudo-field from Description in debian/control."
+		CHANGED=1
+		NEWHP=$OLDHP
+	fi
+  
+  # 4) check for and add missing new Homepage to source stanza
+	if ! egrep "^Homepage: " trunk/$p/debian/control > /dev/null; then
+		echo "$p: trying to add missing Homepage field to source stanza"
+		
+		# try to construct canonical URL
+		if [ -e trunk/$p/Makefile.PL ]; then 
+			PERLNAME=$(perl -n -e "print if s;^.*NAME.*=>.*'([a-zA-Z:]+)'.*\$;\$1;" trunk/$p/Makefile.PL | sed -e 's/::/-/g' | head -n 1)
+		fi
+		if [ -e trunk/$p/Build.PL ]; then 
+			PERLNAME=$(perl -n -e "print if s;^.*module_name.*=>.*'([a-zA-Z:]+)'.*\$;\$1;" trunk/$p/Build.PL | sed -e 's/::/-/g' | head -n 1)
+		fi
+		if [ -n "$PERLNAME" ]; then
+			NEWHP="http://search.cpan.org/dist/$PERLNAME"
+		fi
+		
+		# get NEWHP from somewhere else? debian/watch? debian/copyright?
+
+		if [ -n "$NEWHP" ]; then
+			perl -pi -e "s;(Standards-Version:.+);\$1\nHomepage: $NEWHP;" trunk/$p/debian/control
+			DEBCHANGE_RELEASE_HEURISTIC=changelog dch --changelog trunk/$p/debian/changelog "Add missing Homepage field to source stanza in debian/control."
+			CHANGED=1
+		fi
+	fi
+done
+
+# work is done. svn diff? svn commit?
+if [ "$CHANGED" = "1" ]; then
+
+	read -p "Show svn diff trunk/ (y|N)? " DIFF
+	case $DIFF in
+		y|Y)
+			svn diff trunk/ | less
+			;;
+		*)
+			;;
+	esac
+
+	read -p "Commit (y|N)? " COMMIT
+	case $COMMIT in
+		y|Y)
+			svn ci -m "Add missing XS-Vcs-(Svn|Browser) field(s) to debian/control." trunk/
+			break
+			;;
+		*)
+			;;
+	esac
+
+else
+	echo "Nothing changed."
+fi
+
+exit 0

Propchange: scripts/qa/packagecheck
------------------------------------------------------------------------------
    svn:executable = *




More information about the Pkg-perl-cvs-commits mailing list