[med-svn] r1266 - trunk/community/infrastructure/test
tille at alioth.debian.org
tille at alioth.debian.org
Sat Feb 2 18:35:52 UTC 2008
Author: tille
Date: 2008-02-02 18:35:52 +0000 (Sat, 02 Feb 2008)
New Revision: 1266
Modified:
trunk/community/infrastructure/test/cddtasktools.py
Log:
Several fixes (needs further checking)
Modified: trunk/community/infrastructure/test/cddtasktools.py
===================================================================
--- trunk/community/infrastructure/test/cddtasktools.py 2008-02-02 18:19:24 UTC (rev 1265)
+++ trunk/community/infrastructure/test/cddtasktools.py 2008-02-02 18:35:52 UTC (rev 1266)
@@ -33,6 +33,17 @@
}
HTMLBASE = "/var/lib/gforge/chroot/home/groups"
+def InitTasksFiles(cddname):
+ # Obtain tasks files from SVN
+ tasksdir = "%s/%s/data/tasks" % (HTMLBASE, cddname)
+ # Checkout/Update tasks from SVN
+ if os.path.isdir(tasksdir+'/.svn'):
+ os.system("svn up %s %s >> /dev/null" % (REPOS[cddname], tasksdir))
+ else:
+ os.system("mkdir -p %s" % (tasksdir))
+ os.system("svn co %s %s >> /dev/null" % (REPOS[cddname], tasksdir))
+ return tasksdir
+
class Task:
# This class just stores name and description of a task package
@@ -72,31 +83,30 @@
def __init__(self, cddname):
+ global available
+
if cddname not in REPOS.keys():
print >>sys.stderr, "Unknown CDD."
return None
- self.cddname = cddname
- self.tasksdir = "%s/%s/data/tasks" % (HTMLBASE, cddname)
- # Checkout/Update tasks from SVN
- if os.path.isdir(self.tasksdir+'/.svn'):
- os.system("svn up %s %s >> /dev/null" % (REPOS[self.cddname], self.tasksdir))
- else:
- os.system("mkdir -p %s" % (self.tasksdir))
- os.system("svn co %s %s >> /dev/null" % (REPOS[self.cddname], self.tasksdir))
- self.tasks = {}
- self.available = Available()
+ self.cddname = cddname
+ self.tasksdir = InitTasksFiles(self.cddname)
+ self.tasks = {}
+ self.tasknames = []
+ self.available = available
- def GetTasks(self):
+ def GetTasknames(self):
for task in os.listdir(self.tasksdir):
if os.path.isfile("%s/%s" % (self.tasksdir, task)):
- self.tasks[task] = self.GetTaskDependencies(task)
+ self.tasknames.append(self.GetTaskDependencies(task))
def GetAllDependencies(self):
- if self.tasks == {}:
- self.GetTasks()
- for task in self.tasks:
- self.GetTaskDependencies(task)
+ if self.tasknames == []:
+ self.GetTasknames()
+ for task in self.tasknames:
+ td = TaskDependencies(self.cddname, task)
+ td.GetTaskDependencies()
+ self.tasks[task] = td
class TaskDependencies:
# List of depencencies defined in one Metapackage
@@ -105,21 +115,27 @@
print >>sys.stderr, "Unknown CDD."
return None
- self.cddname = cddname
+ self.cddname = cddname
+ self.tasksdir = InitTasksFiles(self.cddname)
+ self.taskfile = self.tasksdir+'/'+task
+ if os.path.isfile(self.taskfile):
+ self.task = task
+ else:
+ print >>sys.stderr, "No such task file %s." % self.taskfile
+ return None
+
self.dependencies = { 'official' : [],
'unofficial' : [],
'prospective' : []
}
+ self.available = available
- def GetTaskDependencies(self, task):
- # return a list of
- if self.tasks == {}:
- self.GetTasks()
+ # Main information for a task
+ self.taskPrintedName = None
+ self.taskShortDesc = None
+ self.taskLongDesc = None
- if task not in self.tasks:
- print >>stderr, "Unknown task for %s. Nothing to do." % self.cddname
- return
-
+ def GetTaskDependencies(self):
# First obtain information about Packages
# available in Debian
# This might take some time.
@@ -133,7 +149,7 @@
# has to be separated to detect the dependency
dependency_keys = [ "Depends", "Recommends", "Suggests" ]
- f = file(self.tasksdir+'/'+task)
+ f = file(self.taskfile)
for stanza in deb822.Sources.iter_paragraphs(f):
# Why and Responsible can be valid for more than one dependency
# Store them in strings and use them for all Dependent Package objects
@@ -141,6 +157,16 @@
responsible = None
dep = None
for key in stanza:
+ if key == 'Task':
+ self.taskPrintedName = stanza['task']
+ continue
+ if key == 'Description':
+ lines = stanza['description'].splitlines()
+ self.taskShortDesc = lines[0]
+ self.taskLongDesc = ''
+ for line in lines[1:]:
+ self.taskLongDesc += line.strip() + '\n'
+ continue
if key == 'Why':
why = stanza['why']
continue
@@ -167,6 +193,7 @@
dep.pkg = stanza[key]
dep.dists.append(self.available.dist)
# Find the component the Dependency might be in
+ print "DEBUG", self.available.components
for component in self.available.components:
if dep.pkg in self.available.pkgnames[component]:
dep.component = component
@@ -207,16 +234,19 @@
% stanza['pkg-description'].splitlines()[0]
else:
lines = stanza['pkg-description'].splitlines()
- dep.pkgShortDesc = lines[0]
- dep.pkgLongDesc = lines[1:].join('\n')
+ dep.pkgShortDesc = lines[0]
+ dep.pkgLongDesc = ''
+ for line in lines[1:]:
+ dep.pkgLongDesc += line.strip() + '\n'
else:
print "Unknown key '%s': %s" % (key, stanza[key])
- if dep.component != None:
- self.dependencies['official'].append(dep)
- elif dep.pkgURL != None:
- self.dependencies['unofficial'].append(dep)
- else
- self.dependencies['prospective'].append(dep)
+ if dep != None:
+ if dep.component != None:
+ self.dependencies['official'].append(dep)
+ elif dep.pkgURL != None:
+ self.dependencies['unofficial'].append(dep)
+ else:
+ self.dependencies['prospective'].append(dep)
f.close()
@@ -264,3 +294,5 @@
self.pkgnames[component].append(stanza['package'])
f.close()
+available = Available()
+
More information about the debian-med-commit
mailing list