/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
1
# Copyright (C) 2005, 2006 Canonical Ltd
2
#
0.8.1 by John Arbash Meinel
Creating a plugin to ease generating version information from a tree.
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 2 of the License, or
6
# (at your option) any later version.
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
7
#
0.8.1 by John Arbash Meinel
Creating a plugin to ease generating version information from a tree.
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
12
#
0.8.1 by John Arbash Meinel
Creating a plugin to ease generating version information from a tree.
13
# You should have received a copy of the GNU General Public License
14
# along with this program; if not, write to the Free Software
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
17
"""Plugin for generating snapshot information about a bzr tree."""
0.8.1 by John Arbash Meinel
Creating a plugin to ease generating version information from a tree.
18
0.8.2 by John Arbash Meinel
Have working rio output
19
import sys
20
import codecs
21
22
from bzrlib.branch import Branch
23
from bzrlib.commands import Command, register_command
24
from bzrlib.errors import BzrCommandError
25
from bzrlib.option import Option
0.8.20 by John Arbash Meinel
Updated version-info to the latest bzr.dev codebase. Changed to using VersionInfoBuilder, and made tests pass.
26
from bzrlib.workingtree import WorkingTree
0.8.2 by John Arbash Meinel
Have working rio output
27
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
28
import version_info_formats
0.8.2 by John Arbash Meinel
Have working rio output
29
30
31
def _parse_version_info_format(format):
32
    try:
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
33
        return version_info_formats.get_builder(format)
0.8.2 by John Arbash Meinel
Have working rio output
34
    except KeyError:
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
35
        formats = version_info_formats.get_builder_formats()
0.8.2 by John Arbash Meinel
Have working rio output
36
        raise BzrCommandError('No known version info format %s.'
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
37
                              ' Supported types are: %s' 
38
                              % (format, formats))
0.8.2 by John Arbash Meinel
Have working rio output
39
40
41
class cmd_version_info(Command):
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
42
    """Generate version information about this tree."""
0.8.2 by John Arbash Meinel
Have working rio output
43
44
    takes_options = [Option('format', type=_parse_version_info_format,
0.8.11 by John Arbash Meinel
Comment fix
45
                            help='Select the output format'),
0.8.2 by John Arbash Meinel
Have working rio output
46
                     Option('all', help='include all possible information'),
47
                     Option('check-clean', help='check if tree is clean'),
0.8.21 by John Arbash Meinel
Splitting up the version info code into a lazy factory style.
48
                     Option('include-history',
0.8.13 by John Arbash Meinel
Including file-revisions fields, updated test suite.
49
                            help='Include the revision-history'),
50
                     Option('include-file-revisions',
51
                            help='Include the last revision for each file')
0.8.2 by John Arbash Meinel
Have working rio output
52
                     ]
53
    takes_args = ['location?']
54
0.8.20 by John Arbash Meinel
Updated version-info to the latest bzr.dev codebase. Changed to using VersionInfoBuilder, and made tests pass.
55
    encoding_type = 'exact'
56
0.8.2 by John Arbash Meinel
Have working rio output
57
    def run(self, location=None, format=None,
0.8.3 by John Arbash Meinel
Playing around with some formats
58
            all=False, check_clean=False, include_history=False,
0.8.13 by John Arbash Meinel
Including file-revisions fields, updated test suite.
59
            include_file_revisions=False):
0.8.2 by John Arbash Meinel
Have working rio output
60
61
        if location is None:
62
            location = u'.'
63
64
        if format is None:
65
            format = version_formats[None]
66
0.8.20 by John Arbash Meinel
Updated version-info to the latest bzr.dev codebase. Changed to using VersionInfoBuilder, and made tests pass.
67
        wt = None
68
        try:
69
            wt = WorkingTree.open_containing(location)[0]
70
        except NoWorkingTree:
71
            b = Branch.open(location)
72
        else:
73
            b = wt.branch
0.8.2 by John Arbash Meinel
Have working rio output
74
75
        if all:
76
            include_history = True
77
            check_clean = True
0.8.13 by John Arbash Meinel
Including file-revisions fields, updated test suite.
78
            include_file_revisions=True
0.8.2 by John Arbash Meinel
Have working rio output
79
0.8.20 by John Arbash Meinel
Updated version-info to the latest bzr.dev codebase. Changed to using VersionInfoBuilder, and made tests pass.
80
        builder = format(b, working_tree=wt,
0.8.2 by John Arbash Meinel
Have working rio output
81
                check_for_clean=check_clean,
0.8.13 by John Arbash Meinel
Including file-revisions fields, updated test suite.
82
                include_revision_history=include_history,
83
                include_file_revisions=include_file_revisions)
0.8.20 by John Arbash Meinel
Updated version-info to the latest bzr.dev codebase. Changed to using VersionInfoBuilder, and made tests pass.
84
        builder.generate(self.outf)
0.8.2 by John Arbash Meinel
Have working rio output
85
86
87
register_command(cmd_version_info)
88
89
0.8.1 by John Arbash Meinel
Creating a plugin to ease generating version information from a tree.
90
def test_suite():
91
    from bzrlib.tests.TestUtil import TestLoader, TestSuite
92
    import test_version_info
93
    import test_bb_version_info
94
95
    suite = TestSuite()
96
    loader = TestLoader()
97
    suite.addTest(loader.loadTestsFromModule(test_version_info))
98
    suite.addTest(loader.loadTestsFromModule(test_bb_version_info))
99
100
    return suite