~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Marius Kruger
  • Date: 2008-10-03 21:31:00 UTC
  • mfrom: (3763 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3809.
  • Revision ID: amanic@gmail.com-20081003213100-q4rv2l9pn8qto9o0
merge with bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
    errors,
44
44
    option,
45
45
    osutils,
46
 
    registry,
47
46
    trace,
48
47
    win32utils,
49
48
    )
50
49
""")
51
50
 
52
 
from bzrlib.symbol_versioning import (
53
 
    deprecated_function,
54
 
    deprecated_method,
55
 
    )
 
51
from bzrlib import registry
56
52
# Compatibility
57
53
from bzrlib.option import Option
58
54
 
675
671
def run_bzr(argv):
676
672
    """Execute a command.
677
673
 
678
 
    This is similar to main(), but without all the trappings for
679
 
    logging and error handling.  
680
 
    
681
674
    argv
682
675
       The command-line arguments, without the program name from argv[0]
683
676
       These should already be decoded. All library/test code calling
755
748
        from bzrlib.builtins import cmd_version
756
749
        cmd_version().run_argv_aliases([])
757
750
        return 0
758
 
        
 
751
 
759
752
    if not opt_no_plugins:
760
753
        from bzrlib.plugin import load_plugins
761
754
        load_plugins()
768
761
    if not opt_no_aliases:
769
762
        alias_argv = get_alias(argv[0])
770
763
        if alias_argv:
771
 
            alias_argv = [a.decode(bzrlib.user_encoding) for a in alias_argv]
 
764
            user_encoding = osutils.get_user_encoding()
 
765
            alias_argv = [a.decode(user_encoding) for a in alias_argv]
772
766
            argv[0] = alias_argv.pop(0)
773
767
 
774
768
    cmd = argv.pop(0)
781
775
    run_argv = [argv, alias_argv]
782
776
 
783
777
    try:
 
778
        # We can be called recursively (tests for example), but we don't want
 
779
        # the verbosity level to propagate.
 
780
        saved_verbosity_level = option._verbosity_level
 
781
        option._verbosity_level = 0
784
782
        if opt_lsprof:
785
783
            if opt_coverage_dir:
786
784
                trace.warning(
799
797
            trace.debug_memory('Process status after command:', short=False)
800
798
        return ret or 0
801
799
    finally:
802
 
        # reset, in case we may do other commands later within the same process
803
 
        option._verbosity_level = 0
 
800
        # reset, in case we may do other commands later within the same
 
801
        # process. Commands that want to execute sub-commands must propagate
 
802
        # --verbose in their own way.
 
803
        option._verbosity_level = saved_verbosity_level
804
804
 
805
805
def display_command(func):
806
806
    """Decorator that suppresses pipe/interrupt errors."""
826
826
    import bzrlib.ui
827
827
    from bzrlib.ui.text import TextUIFactory
828
828
    bzrlib.ui.ui_factory = TextUIFactory()
829
 
     
 
829
 
830
830
    # Is this a final release version? If so, we should suppress warnings
831
831
    if bzrlib.version_info[3] == 'final':
832
832
        from bzrlib import symbol_versioning
833
833
        symbol_versioning.suppress_deprecation_warnings(override=False)
834
834
    try:
835
 
        argv = [a.decode(bzrlib.user_encoding) for a in argv[1:]]
 
835
        user_encoding = osutils.get_user_encoding()
 
836
        argv = [a.decode(user_encoding) for a in argv[1:]]
836
837
    except UnicodeDecodeError:
837
838
        raise errors.BzrError(("Parameter '%r' is unsupported by the current "
838
839
                                                            "encoding." % a))