r7892 - /scripts/qa/homepagecheck

gregoa-guest at users.alioth.debian.org gregoa-guest at users.alioth.debian.org
Sat Sep 22 23:36:42 UTC 2007


Author: gregoa-guest
Date: Sat Sep 22 23:36:42 2007
New Revision: 7892

URL: http://svn.debian.org/wsvn/?sc=1&rev=7892
Log:
new script: homepagecheck. removes pssudo-field Homepage from Description and adds new Homepage field to source stanza (constructed from http://search.cpan.org/dist/ + module name from Makefile.PL)

Added:
    scripts/qa/homepagecheck   (with props)

Added: scripts/qa/homepagecheck
URL: http://svn.debian.org/wsvn/scripts/qa/homepagecheck?rev=7892&op=file
==============================================================================
--- scripts/qa/homepagecheck (added)
+++ scripts/qa/homepagecheck Sat Sep 22 23:36:42 2007
@@ -1,0 +1,75 @@
+#!/bin/sh
+
+# Copyright 2007 gregor herrmann <gregor+debian at comodo.priv.at>
+# Released under the terms of the GNU GPL version 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
+  
+	# 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: remove 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
+		CHANGED=1
+		NEWHP=$OLDHP
+	fi
+  
+  # add missing new Homepage to source stanza
+	if ! egrep "^Homepage: " trunk/$p/debian/control > /dev/null; then
+		echo "$p: 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)
+			if [ -n "$PERLNAME" ]; then
+				NEWHP="http://search.cpan.org/dist/$PERLNAME"
+			fi
+		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
+		fi
+	fi
+done
+
+
+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 Homepage field to debian/control's source stanza." trunk/
+			;;
+		*)
+			;;
+	esac
+
+else
+	echo "Nothing changed."
+fi
+
+exit 0

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




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