import pysvn
import json
-from debian_bundle import deb822
import numpy as np
-import jinja2
+
+from ConfigParser import SafeConfigParser
+from optparse import OptionParser, OptionGroup, OptionConflictError
# Lets first assure no guarding (but annoying) warnings
import warnings
warnings.simplefilter('ignore', FutureWarning)
-warnings.filterwarnings('ignore', 'Module debian_bundle was already imported.*', UserWarning)
+warnings.filterwarnings('ignore',
+ 'Module debian_bundle was already imported.*', UserWarning)
+
+from debian import deb822
+import apt # initializes the "_system" ;)
+from apt_pkg import version_compare
-import apt
-from ConfigParser import SafeConfigParser
-from optparse import OptionParser, Option, OptionGroup, OptionConflictError
import sys
import os
import copy
import subprocess
import time
import re
+
# templating
from jinja2 import Environment, PackageLoader
# enforce delay to be friendly to DDE
time.sleep(3)
try:
- data = json.read(urllib2.urlopen(url+"?t=json").read())['r']
+ data = json.load(urllib2.urlopen(url+"?t=json"))['r']
print "SUCCESS:", url
return data
except urllib2.HTTPError, e:
except (StopIteration):
print "NOINFO:", url
return False
- except json.ReadException, e:
+ except Exception, e:
print "UDD-DOWN?:", url, type(e)
return False
try:
# change into this from python 2.6 on
#data = json.loads(urllib2.urlopen(nitrc_url + '?spec=%s' % spec).read())
- data = json.read(urllib2.urlopen(nitrc_url + '?spec=%s' % spec).read())
+ data = json.load(urllib2.urlopen(nitrc_url + '?spec=%s' % spec))
print "NITRC-SUCCESS:", spec
except urllib2.HTTPError, e:
print "NITRC-NOINFO:", spec, type(e)
if q.has_key('popcon'):
db[p]['main']['debian_popcon'] = q['popcon']
# if we have debian, need to get ubuntu
- q = dde_get(query_url + "/packages/prio-ubuntu-natty/%s" % p)
+ q = dde_get(query_url + "/packages/prio-ubuntu-precise/%s" % p)
if q and q.has_key('popcon'):
db[p]['main']['ubuntu_popcon'] = q['popcon']
else:
info[distkey]['architecture'] = [info[distkey]['architecture']]
# accumulate data for multiple over archs
else:
- comp = apt.VersionCompare(cp['version'],
- info[distkey]['version'])
+ comp = version_compare(cp['version'],
+ info[distkey]['version'])
# found another arch for the same version
if comp == 0:
info[distkey]['architecture'].append(cp['architecture'])
ex_dir = os.path.join(extracts_dir, pkgdb['main']['sv'].split()[0])
if not os.path.exists(ex_dir):
ex_dir = None
+ long_description = 'Description missing'
+ if 'long_description' in pkgdb['main']:
+ long_description=convert_longdescr(
+ assure_unicode(pkgdb['main']['long_description']))
page = template.render(
pkg=pkg,
title=title,
- long_description=convert_longdescr(
- assure_unicode(pkgdb['main']['long_description'])),
+ long_description=long_description,
cfg=cfg,
db=pkgdb,
fulldb=db,
sl.close()
+def write_mirmonlists(cfg, outdir):
+ """Write list of mirrors in the format suitable for mirmon
+
+ It will reuse the same 'lists' directory
+ """
+ print "I: Composing mirmon lists"
+ outdir = os.path.join(outdir, 'lists')
+ create_dir(outdir)
+
+ for sec, sep in (('mirrors', ' '),
+ ('mirror names', ' - ')):
+ entries = ['%s%s%s' % (mirror, sep, cfg.get(sec, mirror))
+ for mirror in cfg.options('mirrors')]
+ f = open(os.path.join(outdir, 'mirmon-%s.txt' % sec.replace(' ', '-')),
+ 'w')
+ f.write('\n'.join(entries + ['']))
+ f.close()
+
+
def sort_by_tasks(db):
tasks = {}
for pkg in db.keys():
write_sourceslist(jinja_env, cfg, opts.outdir)
+ write_mirmonlists(cfg, opts.outdir)
+
if __name__ == "__main__":
main()