~launchpad-pqm/launchpad/devel

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
48
49
50
51
52
53
54
55
#!/usr/bin/python -S
#
# Copyright 2009 Canonical Ltd.  This software is licensed under the
# GNU Affero General Public License version 3 (see the file LICENSE).

"""Get useful hosting information for a branch.

Usage: get-branch-info <branch_url>
"""

import _pythonpath

import sys

from bzrlib.urlutils import join

from zope.component import getUtility

from canonical.config import config
from canonical.launchpad.scripts import execute_zcml_for_scripts
from canonical.launchpad.webapp.publisher import canonical_url
from lp.code.enums import BranchType
from lp.code.interfaces.branchlookup import IBranchLookup
from lp.codehosting.vfs import branch_id_to_path


def main(args):
    branch_url = args[1]
    execute_zcml_for_scripts()
    branch_lookup = getUtility(IBranchLookup)
    branch = branch_lookup.getByUrl(branch_url)
    if branch is None:
        print "Could not find branch at %r" % (branch_url,)
        return
    print branch.bzr_identity
    print
    print 'Unique name:', branch.unique_name
    print 'ID:', branch.id
    print 'Private:', branch.private
    print 'Type:', branch.branch_type
    print 'URL:', canonical_url(branch)
    if branch.url is not None:
        print 'External URL:', branch.url
    branch_path = branch_id_to_path(branch.id)
    if branch.branch_type == BranchType.HOSTED:
        hosted_path = join(
            config.codehosting.hosted_branches_root, branch_path)
        print 'Hosted copy:',  hosted_path
    mirrored_path = join(
        config.codehosting.mirrored_branches_root, branch_path)
    print 'Mirrored copy:', mirrored_path


if __name__ == '__main__':
    main(sys.argv)