~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Martin Pool
  • Date: 2005-07-07 10:56:27 UTC
  • Revision ID: mbp@sourcefrog.net-20050707105627-8373f3f40dbf61be
- If export filename ends in .tar, etc, then make a tarball instead of a directory

Show diffs side-by-side

added added

removed removed

Lines of Context:
1042
1042
    If no revision is specified this exports the last committed revision.
1043
1043
 
1044
1044
    Format may be an "exporter" name, such as tar, tgz, tbz2.  If none is
1045
 
    given, exports to a directory (equivalent to --format=dir).
 
1045
    given, try to find the format with the extension. If no extension
 
1046
    is found exports to a directory (equivalent to --format=dir).
1046
1047
 
1047
 
    Root may be the top directory for tar, tgz and tbz2 formats."""
 
1048
    Root may be the top directory for tar, tgz and tbz2 formats. If none
 
1049
    is given, the top directory will be the root name of the file."""
1048
1050
    # TODO: list known exporters
1049
1051
    takes_args = ['dest']
1050
1052
    takes_options = ['revision', 'format', 'root']
1051
 
    def run(self, dest, revision=None, format='dir', root=None):
 
1053
    def run(self, dest, revision=None, format=None, root=None):
 
1054
        import os.path
1052
1055
        b = find_branch('.')
1053
1056
        if revision == None:
1054
1057
            rh = b.revision_history()[-1]
1055
1058
        else:
1056
1059
            rh = b.lookup_revision(int(revision))
1057
1060
        t = b.revision_tree(rh)
 
1061
        root, ext = os.path.splitext(dest)
 
1062
        if not format:
 
1063
            if ext in (".tar",):
 
1064
                format = "tar"
 
1065
            elif ext in (".gz", ".tgz"):
 
1066
                format = "tgz"
 
1067
            elif ext in (".bz2", ".tbz2"):
 
1068
                format = "tbz2"
 
1069
            else:
 
1070
                format = "dir"
1058
1071
        t.export(dest, format, root)
1059
1072
 
1060
1073