~fginther/ppa-dev-tools/ppa_sync-fix-source-package-search

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env python

import sys
import re
from lpltk import LaunchpadService
lp          = LaunchpadService()

if len(sys.argv) < 2:
    print "Usage:  ppa-create <ppa-name>"
    sys.exit(0)
ppa_name = sys.argv[1]

re_lp = re.compile("lp(\d+)")
displayname = ppa_name
description = ppa_name
m = re_lp.match(ppa_name)
if m:
    bug_id = m.group(1)
    bug = lp.get_bug(bug_id)
    desc_summary = bug.description.split("\n\n")[0]
    if desc_summary[:20] == "Binary package hint:":
        desc_summary = bug.description.split("\n\n")[1]
    displayname = "Fix for bug %s - %s" %(bug_id, bug.title)
    # BUG:  Can't embed newlines (see LP: #868047)
    description = "This PPA contains a possible fix for the following issue: "
    description += bug.title + "   "
    description += desc_summary
    description += " (LP: #%s)""" %(bug_id)
    print displayname
    print description
    print

me = lp.launchpad.me
team = lp.launchpad.people[me.name]
results = team.createPPA(
    name=ppa_name,
    displayname=displayname,
    description=description)
team.lp_save()

ppa = team.getPPAByName(name=ppa_name)
print ppa.web_link
print
print "You can upload packages to this PPA using:"
print "ppa-put <source.changes>"
print " - or -"
print "dput ppa:%s/%s <source.changes>" %(team.name, ppa_name)