[med-svn] r2650 - trunk/community/infrastructure/scripts

tille at alioth.debian.org tille at alioth.debian.org
Tue Nov 11 12:55:27 UTC 2008


Author: tille
Date: 2008-11-11 12:55:27 +0000 (Tue, 11 Nov 2008)
New Revision: 2650

Removed:
   trunk/community/infrastructure/scripts/update-tasks
Modified:
   trunk/community/infrastructure/scripts/cronfile
   trunk/community/infrastructure/scripts/update-website
Log:
Make sure bugs and tasks directory are not overidden by post-commit hook


Modified: trunk/community/infrastructure/scripts/cronfile
===================================================================
--- trunk/community/infrastructure/scripts/cronfile	2008-11-11 06:39:40 UTC (rev 2649)
+++ trunk/community/infrastructure/scripts/cronfile	2008-11-11 12:55:27 UTC (rev 2650)
@@ -5,13 +5,13 @@
 
 BASE=/home/groups/debian-med/
 
-00	00	*	*	*	$BASE/scripts/update-bugs
-00	06	*	*	*	$BASE/scripts/update-bugs
-00	12	*	*	*	$BASE/scripts/update-bugs
-00	18	*	*	*	$BASE/scripts/update-bugs
+#00	00	*	*	*	$BASE/scripts/update-bugs
+#00	06	*	*	*	$BASE/scripts/update-bugs
+#00	12	*	*	*	$BASE/scripts/update-bugs
+#00	18	*	*	*	$BASE/scripts/update-bugs
 00	00	*	*	*	$BASE/scripts/update-ddtp-wrapper
-00	00	*	*	*	$BASE/scripts/update-tasks-wrapper
-00	12	*	*	*	$BASE/scripts/update-tasks-wrapper
+#00	00	*	*	*	$BASE/scripts/update-tasks-wrapper
+#00	12	*	*	*	$BASE/scripts/update-tasks-wrapper
 *	*	*	*	*	$BASE/scripts/check-static
 
 00	*	*	*	*	PERL5LIB=$BASE/scripts/qa $BASE/scripts/qa/fetchdata -c $BASE/.debianqa/qa.conf

Deleted: trunk/community/infrastructure/scripts/update-tasks
===================================================================
--- trunk/community/infrastructure/scripts/update-tasks	2008-11-11 06:39:40 UTC (rev 2649)
+++ trunk/community/infrastructure/scripts/update-tasks	2008-11-11 12:55:27 UTC (rev 2650)
@@ -1,307 +0,0 @@
-#!/usr/bin/python -W ignore
-
-#
-# This Python script is:
-#  (C) 2007, David Paleino <d.paleino at gmail.com>,
-#      2008, David Paleino <d.paleino at gmail.com>, Andreas Tille <tille at debian.org>
-#
-# It is licensed under the terms of GNU General Public License (GPL)
-# v3, or any later revision.
-#
-
-from sys import argv, exit, stderr
-print "There is a new mechanism to update the tasks pages of all CDDs"
-print "Please deactivate your cron job."
-print "Just have a look at"
-print "   http://wiki.debian.org/DebianEdu/Extremadura2008/WebSentinelHowto"
-exit(-1)
-
-import apt
-import apt_pkg
-import apt_inst
-import HTMLTemplate
-import re
-import os
-from stat import S_IWGRP, S_IRUSR, S_IRGRP, S_IWUSR, S_IROTH
-import time
-from datetime import datetime
-from email.Utils import formatdate
-
-from cddtasktools import CddDependencies, HTMLBASE, REPOS
-
-CDD='debian-med'
-
-OUTPUTDIR = { 'debian-med'     : HTMLBASE+"/debian-med/static/tasks/",
-              'debian-edu'     : HTMLBASE+"/cdd/htdocs/edu/tasks/",
-              'debian-gis'     : HTMLBASE+"/cdd/htdocs/gis/tasks/",
-              'debian-junior'  : HTMLBASE+"/cdd/htdocs/junior/tasks/",
-              'debian-science' : HTMLBASE+"/cdd/htdocs/science/tasks/",
-            }
-
-PRINTEDNAME={ 'debian-med'     : "Debian Med",
-              'debian-edu'     : "Debian Edu",
-              'debian-gis'     : "Debian GIS",
-              'debian-junior'  : "Debian Junior",
-              'debian-science' : "Debian Science",
-            }
-
-EMAILLIST = { 'debian-med'     : "debian-med at lists.debian.org",
-              'debian-edu'     : "debian-edu at lists.debian.org",
-              'debian-gis'     : "pkg-grass-general at lists.alioth.debian.org",
-              'debian-junior'  : "debian-junior at lists.debian.org",
-              'debian-science' : "debian-science at lists.debian.org",
-            }
-
-TEMPLATEDIR = "/var/lib/gforge/chroot/home/groups/debian-med/htdocs/"
-
-###
-# Template handlers
-###
-
-# Do not Encode our strings - we do it ourself and want to take over responsiblity
-# for Links etc.
-def myEncoder(txt):
-	# Used to HTML-encode value in 'node.content = value'.
-	return txt
-
-# Do not Decode our strings - we do it ourself and want to take over responsiblity
-# for Links etc.
-def myDecoder(txt):
-	# Used to HTML-encode value in 'node.content = value'.
-	return txt
-
-
-def renderIndex(node, tasks):
-	node.tasks.repeat(renderTaskList, tasks)
-	t = datetime.now()
-	node.date.content = formatdate(time.mktime(t.timetuple()))
-	node.CDD.raw = '<?php $CDD = "%s" ?>' % PRINTEDNAME[CDD]
-
-def renderTaskList(node, task):
-	node.task.raw = """<a href="%s.php" name="%s" id="%s">%s</a>""" % (task, task, task, task.capitalize())
-
-def renderTasks(node, task, packages, details):
-	global cdeps
-	
-#	node.CDD.content = PRINTEDNAME[CDD]
-#	node.CDDmail.content = '<a href="mailto:%s">%s mailing list</a>' % (EMAILLIST[CDD], PRINTEDNAME[CDD])
-	node.CDD.raw = '<?php $CDD = "%s"; $CDDmail = "%s" ?>' % (PRINTEDNAME[CDD], EMAILLIST[CDD])
-	node.task.content = details['Task']
-	node.shortdesc.content = details['ShortDesc']
-	node.heading.content = details['ShortDesc']
-	node.longdesc.content = details['LongDesc']
-
-	t = datetime.now()
-	node.date.content = formatdate(time.mktime(t.timetuple()))
-
-	official = cdeps.GetNamesOnlyDict(('official',))
-	#	for deppkg in cdeps.tasks[task].dependencies['official']:
-        node.official_head.raw = """<h2>
-<a id="official-debs" name="official-debs"></a>
-	Official Debian packages
-</h2>"""
-	# HTML_Template wants a list as argument so we provide a list of indizes to address
-	# the list of DependantPackage instances inside renderOfficial
-	list_of_dependencies = cdeps.GetListOfDepsForTask(task, dependencytypes=('official',))
-	node.official.repeat(renderOfficial,
-			     range(len(list_of_dependencies)))
-
-#	if task in todo:
-#		error = True
-#	else:
-#		error = False
-
-	unofficial = cdeps.GetNamesOnlyDict(('unofficial',))
-	list_of_dependencies = cdeps.GetListOfDepsForTask(task, dependencytypes=('unofficial',))
-	if len(list_of_dependencies) > 0:
-		node.unofficial_head.raw = """<h2>
-<a id="unofficial-debs" name="unofficial-debs"></a>
-	Experimental or unofficial Debian packages, projects with packaging stuff in SVN
-</h2>"""
-		node.unofficial.repeat(renderUnofficial, range(len(list_of_dependencies)))
-		# error = False
-
-	prospective = cdeps.GetNamesOnlyDict(('prospective',))
-	list_of_dependencies = cdeps.GetListOfDepsForTask(task, dependencytypes=('prospective',))
-	if len(list_of_dependencies) > 0:
-		node.unavailable_head.raw = """<h2>
-<a id="debs-not-available" name="debs-not-available"></a>
-	Debian packages not available
-</h2>"""
-		node.unavailable.repeat(renderProspective, range(len(list_of_dependencies)))
-		# error = False
-
-#	if error:
-		# The package probably needs a proper prospective entry in the
-		# task files. Write it to stdout.
-#		print "Error: problems with %s" % task
-
-def renderOfficial(node, package_no):
-	# Here we parse just official packages
-	deppkg = cdeps.tasks[task].dependencies['official'][package_no]
-
-	node.shortdesc.content = deppkg.pkgShortDesc
-	node.project.raw = "<table class=\"project\" summary=\"%s\">" % deppkg.pkg
-	node.anchor.atts['name'] = deppkg.pkg
-	node.anchor.atts['id'] = deppkg.pkg
-	node.name.content = deppkg.pkg.capitalize()
-	node.url.atts['href'] = deppkg.homepage
-	if deppkg.homepage == "#":
-		node.url.content = "Homepage not available"
-	else:
-		node.url.content = deppkg.homepage
-
-	node.longdesc.raw = deppkg.pkgLongDesc
-	node.version.content = "Version: %s" % deppkg.version
-	if deppkg.license != None:
-		node.license.content = "License: %s" % deppkg.license
-	# In case some '&' made it up to this place
-	node.pkgurl.atts['href'] = deppkg.pkgURL ## .replace("&", "%26")
-	node.pkgurl.content = "Official Debian package"
-	node.deburl.atts['href'] = deppkg.filename
-	#~ node.deburl.content = "X" ### TODO: add a nice icon here to download the .deb package
-	node.deburl.raw = "<img src=\"/img/deb-icon.png\" />"
-	if deppkg.responsible:
-		node.responsible.content = deppkg.responsible
-	else:
-		node.responsible.raw = "no one"
-
-
-def renderUnofficial(node, package_no):
-	# Here we parse just unofficial packages
-	deppkg = cdeps.tasks[task].dependencies['unofficial'][package_no]
-
-	node.shortdesc.content = deppkg.pkgShortDesc
-	node.longdesc.raw = deppkg.pkgLongDesc
-	node.project.raw = "<table class=\"project\" summary=\"%s\">" % deppkg.pkg
-	node.anchor.atts['name'] = deppkg.pkg
-	node.anchor.atts['id'] = deppkg.pkg
-	node.name.content = deppkg.pkg.capitalize()
-	node.url.atts['href'] = deppkg.homepage
-	node.url.content = deppkg.homepage
-	node.license.content = "License: %s" % deppkg.license
-	# In case some '&' made it up to this place
-	node.pkgurl.atts['href'] = deppkg.pkgURL ## .replace("&", "%26")
-	node.pkgurl.content = "Unofficial Debian package"
-	if deppkg.responsible:
-		node.responsible.content = deppkg.responsible
-	else:
-		node.responsible.raw = "no one"
-	if deppkg.wnpp:
-		node.wnpp.raw = " &mdash; <a href=\"http://bugs.debian.org/%s\">wnpp</a>" % deppkg.wnpp
-
-	# Let's try to get the version from the package name
-	# (following Debian standards: <name>_<ver>_<arch>.deb)
-	regex = ".*/%s_(?P<version>.*)_.*\.deb$" % deppkg.pkg
-	p = re.compile(regex)
-	m = p.search(deppkg.pkgURL)
-	if m:
-		node.version.content = "Version: %s" % m.group("version")
-	else:
-		node.version.content = "Version: N/A"
-
-
-def renderProspective(node, package_no):
-	# Parsing unavailable packages :(
-	# PACKAGE THEM! :)
-	deppkg = cdeps.tasks[task].dependencies['prospective'][package_no]
-
-	if deppkg.pkgShortDesc:
-		node.shortdesc.content = deppkg.pkgShortDesc
-	else:
-		node.shortdesc.content = "N/A"
-	if deppkg.pkgLongDesc:
-		node.longdesc.content = deppkg.pkgLongDesc
-	else:
-		node.longdesc.content = "N/A"
-	node.longdesc.raw = deppkg.pkgLongDesc
-	node.project.raw = "<table class=\"project\" summary=\"%s\">" % deppkg.pkg
-	if deppkg.responsible:
-		node.responsible.content = deppkg.responsible
-	else:
-		node.responsible.raw = "no one"
-	if deppkg.wnpp:
-		node.wnpp.raw = " &mdash; <a href=\"http://bugs.debian.org/%s\">wnpp</a>" % deppkg.wnpp
-	node.anchor.atts['name'] = deppkg.pkg
-	node.anchor.atts['id'] = deppkg.pkg
-	node.name.content = deppkg.pkg.capitalize()
-	if deppkg.homepage:
-		node.url.atts['href'] = deppkg.homepage
-		node.url.content = deppkg.homepage
-	else:
-		node.url.atts['href'] = "#"
-		node.url.content = "N/A"
-	if deppkg.license:
-		node.license.raw = "<?=_('License')?>: %s" % deppkg.license
-	else:
-		node.license.raw = "<?=_('License')?>: N/A"
-
-if len(argv) <= 1 :
-	print >>stderr, "Warning: No CDD name given as command line argument.  Using %s." % CDD
-else:
-	if argv[1] not in REPOS.keys():
-		print >>stderr, "Unknown CDD name: %s. Don't know what to do." % CDD
-		exit(-1)
-	CDD = argv[1]
-
-cdeps=CddDependencies(CDD)
-cdeps.GetAllDependencies()
-
-# Let's render the Tasks Page index, first
-f = open(TEMPLATEDIR + "tasks_idx.tmpl")
-tmpl = HTMLTemplate.Template(renderIndex, f.read(), codecs=(None,None)) ##myEncoder, myDecoder))
-f.close()
-
-# Make sure OUTPUTDIR exists
-if not os.access(OUTPUTDIR[CDD], os.W_OK):
-	try:
-		os.makedirs(OUTPUTDIR[CDD])
-		print "Created output dir " + OUTPUTDIR[CDD]
-	except:
-		print >> stderr, "Unable to create output directory", OUTPUTDIR[CDD]
-
-outputfile = OUTPUTDIR[CDD] + "index.php"
-# Remove the file first, to enable other users to change permissions easily
-try:
-	os.unlink(outputfile)
-except:
-        # don't fail if there is nothing to remove (if a new CDD get's added)
-        pass
-
-f = open(outputfile, "w")
-
-tasks        = cdeps.tasknames
-packages     = cdeps.GetNamesOnlyDict()
-task_details = cdeps.GetTaskDescDict()
-
-f.write(tmpl.render(tasks))
-f.close()
-try:
-	os.chmod(outputfile,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH)
-except:
-	# chmod is not allowed to other peoples files
-	pass
-
-# Let's render single pages now.
-f = open(TEMPLATEDIR + "tasks.tmpl")
-tmpl = HTMLTemplate.Template(renderTasks, f.read())
-f.close()
-
-for task in tasks:
-	outputfile = OUTPUTDIR[CDD] + task + '.php'
-	try:
-		os.unlink(outputfile)
-	except: # simply continue if file does not exist
-		pass
-	f = open(outputfile, "w")
-
-	# This is to avoid useless <br>eaks before closing the cell
-	source = tmpl.render(task, packages[task], task_details[task])
-	f.write(re.sub(r"<br /><br />[ ]*</td>", "</td>", source))
-
-	f.close()
-	try:
-		chmod(outputfile,S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH)
-	except:
-		# chmod is not allowed to other peoples files
-		pass

Modified: trunk/community/infrastructure/scripts/update-website
===================================================================
--- trunk/community/infrastructure/scripts/update-website	2008-11-11 06:39:40 UTC (rev 2649)
+++ trunk/community/infrastructure/scripts/update-website	2008-11-11 12:55:27 UTC (rev 2650)
@@ -8,7 +8,16 @@
 BASE=/var/lib/gforge/chroot/home/groups/debian-med
 
 echo "Updating website... rev. $REV"
-mv $BASE/htdocs/* $BASE/htdocs-backup/ && rm -rf $BASE/htdocs/*
+for tomove in `find $BASE/htdocs -maxdepth 1 -mindepth 1` ; do
+    case "`basename $tomove`" in
+	"bugs"|"tasks")
+		echo "Do not move bugs or tasks"
+		;;
+	*)
+		mv "$tomove" $BASE/htdocs-backup/
+		;;
+    esac
+done
 svn --force export $URL_REPOS $BASE/htdocs/
 [ "x$?" == "x0" ] && rm -rf $BASE/htdocs-backup/*
 




More information about the debian-med-commit mailing list