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