/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/cmd_version_info.py

  • Committer: Jelmer Vernooij
  • Date: 2020-04-05 19:11:34 UTC
  • mto: (7490.7.16 work)
  • mto: This revision was merged to the branch mainline in revision 7501.
  • Revision ID: jelmer@jelmer.uk-20200405191134-0aebh8ikiwygxma5
Populate the .gitignore file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005-2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
 
"""Commands for generating snapshot information about a bzr tree."""
18
 
 
19
 
from bzrlib.lazy_import import lazy_import
 
17
"""Commands for generating snapshot information about a brz tree."""
 
18
 
 
19
from __future__ import absolute_import
 
20
 
 
21
from .lazy_import import lazy_import
20
22
 
21
23
lazy_import(globals(), """
22
 
from bzrlib import (
 
24
from breezy import (
23
25
    branch,
24
 
    errors,
25
 
    ui,
26
26
    version_info_formats,
27
27
    workingtree,
28
28
    )
 
29
from breezy.i18n import gettext
29
30
""")
30
31
 
31
 
from bzrlib.commands import Command
32
 
from bzrlib.option import Option, RegistryOption
 
32
from . import (
 
33
    errors,
 
34
    )
 
35
from .commands import Command
 
36
from .option import Option, RegistryOption
 
37
from .sixish import text_type
33
38
 
34
39
 
35
40
def _parse_version_info_format(format):
42
47
        return version_info_formats.get_builder(format)
43
48
    except KeyError:
44
49
        formats = version_info_formats.get_builder_formats()
45
 
        raise errors.BzrCommandError('No known version info format %s.'
46
 
                                     ' Supported types are: %s'
47
 
                                     % (format, formats))
 
50
        raise errors.BzrCommandError(
 
51
            gettext('No known version info format {0}.'
 
52
                    ' Supported types are: {1}').format(format, formats))
48
53
 
49
54
 
50
55
class cmd_version_info(Command):
56
61
 
57
62
    For example::
58
63
 
59
 
      bzr version-info --custom \\
 
64
      brz version-info --custom \\
60
65
        --template="#define VERSION_INFO \\"Project 1.2.3 (r{revno})\\"\\n"
61
66
 
62
67
    will produce a C header file with formatted string containing the
72
77
    """
73
78
 
74
79
    takes_options = [RegistryOption('format',
75
 
                            'Select the output format.',
76
 
                            value_switches=True,
77
 
                            lazy_registry=('bzrlib.version_info_formats',
78
 
                                           'format_registry')),
 
80
                                    'Select the output format.',
 
81
                                    value_switches=True,
 
82
                                    lazy_registry=('breezy.version_info_formats',
 
83
                                                   'format_registry')),
79
84
                     Option('all', help='Include all possible information.'),
80
85
                     Option('check-clean', help='Check if tree is clean.'),
81
86
                     Option('include-history',
82
87
                            help='Include the revision-history.'),
83
88
                     Option('include-file-revisions',
84
89
                            help='Include the last revision for each file.'),
85
 
                     Option('template', type=str, help='Template for the output.'),
 
90
                     Option('template', type=text_type,
 
91
                            help='Template for the output.'),
 
92
                     'revision',
86
93
                     ]
87
94
    takes_args = ['location?']
88
95
 
89
 
    encoding_type = 'exact'
 
96
    encoding_type = 'replace'
90
97
 
91
98
    def run(self, location=None, format=None,
92
99
            all=False, check_clean=False, include_history=False,
93
 
            include_file_revisions=False, template=None):
 
100
            include_file_revisions=False, template=None,
 
101
            revision=None):
 
102
 
 
103
        if revision and len(revision) > 1:
 
104
            raise errors.BzrCommandError(
 
105
                gettext('brz version-info --revision takes exactly'
 
106
                        ' one revision specifier'))
94
107
 
95
108
        if location is None:
96
109
            location = '.'
98
111
        if format is None:
99
112
            format = version_info_formats.format_registry.get()
100
113
 
101
 
        wt = None
102
114
        try:
103
115
            wt = workingtree.WorkingTree.open_containing(location)[0]
104
116
        except errors.NoWorkingTree:
105
117
            b = branch.Branch.open(location)
 
118
            wt = None
106
119
        else:
107
120
            b = wt.branch
108
121
 
109
 
        if all or template:
 
122
        if all:
110
123
            include_history = True
111
124
            check_clean = True
112
 
            include_file_revisions=True
 
125
            include_file_revisions = True
 
126
        if template:
 
127
            include_history = True
 
128
            include_file_revisions = True
 
129
            if '{clean}' in template:
 
130
                check_clean = True
 
131
 
 
132
        if revision is not None:
 
133
            revision_id = revision[0].as_revision_id(b)
 
134
        else:
 
135
            revision_id = None
113
136
 
114
137
        builder = format(b, working_tree=wt,
115
 
                check_for_clean=check_clean,
116
 
                include_revision_history=include_history,
117
 
                include_file_revisions=include_file_revisions,
118
 
                template=template)
119
 
        builder.generate(ui.ui_factory.make_output_stream())
 
138
                         check_for_clean=check_clean,
 
139
                         include_revision_history=include_history,
 
140
                         include_file_revisions=include_file_revisions,
 
141
                         template=template, revision_id=revision_id)
 
142
        builder.generate(self.outf)