[server] fix --help output when redirected through pipes, fix bug 4049
This commit is contained in:
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
|
||||
@@ -62,7 +63,7 @@ Entropy package scope is given by the following tuple:
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
# setup atoms variable before spawning commit
|
||||
self._ask = not nsargs.quick
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _, ngettext
|
||||
from entropy.output import bold, purple, darkgreen, blue, teal
|
||||
@@ -90,7 +91,7 @@ over just use the *--no-copy* switch.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._from_branch = nsargs.frombranch
|
||||
self._to_branch = nsargs.branch
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.output import darkgreen, blue
|
||||
from entropy.i18n import _
|
||||
@@ -101,7 +102,7 @@ will be accepted and new repository data will be uploaded.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._sync = nsargs.sync
|
||||
return self._call_locked, [self._bump, nsargs.repo]
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.output import darkgreen, blue
|
||||
from entropy.i18n import _
|
||||
@@ -94,7 +95,7 @@ another branch, iuse *eit branch*.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
return self._call_locked, [self._checkout, nsargs.repo]
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.output import darkgreen, blue, purple
|
||||
from entropy.i18n import _
|
||||
@@ -114,7 +115,7 @@ This commands makes possible to manually force a cleanup.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._ask = not nsargs.quick
|
||||
if nsargs.days is not None:
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
"""
|
||||
from entropy.i18n import _
|
||||
from entropy.output import darkgreen, print_error
|
||||
from entropy.output import darkgreen, print_error, print_generic
|
||||
from entropy.exceptions import PermissionDenied
|
||||
from entropy.server.interfaces import Server
|
||||
from entropy.core.settings.base import SystemSettings
|
||||
@@ -48,6 +48,22 @@ class EitCommand(object):
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def print_help(self, parser):
|
||||
"""
|
||||
ArgumentParser.print_help wrapper that properly handles
|
||||
UTF-8 encoding in a fault-tolerant way. Also see bug #4049.
|
||||
|
||||
@param parser: an ArgumentParser object
|
||||
@type parser: argparse.ArgumentParser
|
||||
"""
|
||||
class _Printer(object):
|
||||
|
||||
@classmethod
|
||||
def write(self, string):
|
||||
print_generic(string)
|
||||
|
||||
parser.print_help(file=_Printer)
|
||||
|
||||
def parse(self):
|
||||
"""
|
||||
Parse the actual arguments and return
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import darkgreen, teal, brown, \
|
||||
@@ -116,7 +117,7 @@ If you would like to selectively add certain packages, please see
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._interactive = nsargs.interactive
|
||||
if not self._interactive:
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.output import darkgreen, blue, brown, bold, red, purple, teal
|
||||
from entropy.i18n import _
|
||||
@@ -112,7 +113,7 @@ Copy packages from source repository to destination repository.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._source = nsargs.source[0]
|
||||
self._dest = nsargs.dest[0]
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.const import etpConst
|
||||
@@ -70,7 +71,7 @@ non-permanent way.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._packages += nsargs.packages
|
||||
return self._call_locked, [self._deps, nsargs.inrepo]
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import bold, purple, darkgreen, blue, brown, teal
|
||||
@@ -71,7 +72,7 @@ package owners), please use *eit own*.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._quiet = nsargs.quiet
|
||||
self._packages += nsargs.packages
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
|
||||
@@ -74,7 +75,7 @@ For a reverse dependency graph, please see *eit revgraph*.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._quiet = nsargs.quiet
|
||||
self._packages += nsargs.packages
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import darkgreen, teal
|
||||
@@ -102,7 +103,7 @@ So, please setup your repository there and only then run *eit init <repo>*.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._ask = not nsargs.quick
|
||||
return self._call_locked, [self._init, nsargs.repo[0]]
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import teal, purple
|
||||
@@ -75,7 +76,7 @@ repositories as much as you can.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._packages += nsargs.packages
|
||||
return self._call_locked, [self._inject, nsargs.to]
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.output import blue, purple, darkgreen, bold, brown, teal, \
|
||||
darkred
|
||||
@@ -118,7 +119,7 @@ package and repository files through *gnupg*.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._nsargs = nsargs
|
||||
return self._call_locked, [nsargs.func, nsargs.repo]
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import brown, teal, purple, darkgreen
|
||||
@@ -76,7 +77,7 @@ If you wonder what's inside a repository, you've found the right tool.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._quiet = nsargs.quiet
|
||||
self._verbose = nsargs.verbose
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import darkgreen, brown, purple, blue, darkred
|
||||
@@ -123,7 +124,7 @@ repositories.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._client = nsargs.client
|
||||
self._repository_id = nsargs.repo[0]
|
||||
|
||||
@@ -13,6 +13,7 @@ import sys
|
||||
import os
|
||||
import subprocess
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
|
||||
@@ -59,7 +60,7 @@ This commands opens repository ChangeLog.bz2 using *bzless*.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
return self._call_locked, [self._log, nsargs.repo]
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import purple
|
||||
@@ -70,7 +71,7 @@ If you are interested in a simple text search, please see *eit search*.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._quiet = nsargs.quiet
|
||||
self._packages += nsargs.packages
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
|
||||
@@ -75,7 +76,7 @@ back in. This tool does exactly this.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._ask = not nsargs.quick
|
||||
self._merge_branch = nsargs.branch
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
|
||||
@@ -68,7 +69,7 @@ then is removed from source.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._source = nsargs.source
|
||||
self._dest = nsargs.dest
|
||||
|
||||
@@ -13,6 +13,7 @@ import sys
|
||||
import os
|
||||
import errno
|
||||
import argparse
|
||||
import functools
|
||||
import tempfile
|
||||
import codecs
|
||||
|
||||
@@ -86,7 +87,7 @@ list notice-board titles for user consumption.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._repository_id = nsargs.repo
|
||||
return self._call_locked, [nsargs.func, self._repository_id]
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import purple, darkgreen, teal, bold
|
||||
@@ -81,7 +82,7 @@ please use *eit files*.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._quiet = nsargs.quiet
|
||||
self._quiet = nsargs.quiet
|
||||
|
||||
@@ -13,6 +13,7 @@ import sys
|
||||
import os
|
||||
import errno
|
||||
import argparse
|
||||
import functools
|
||||
import tempfile
|
||||
import codecs
|
||||
|
||||
@@ -104,7 +105,7 @@ doing.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._repository_id = nsargs.repo
|
||||
return self._call_locked, [self._pkgmove, self._repository_id]
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
import tempfile
|
||||
import codecs
|
||||
|
||||
@@ -123,7 +124,7 @@ repository) by pulling updated data.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._ask = not nsargs.quick
|
||||
self._all = nsargs.all
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
import tempfile
|
||||
import codecs
|
||||
|
||||
@@ -133,7 +134,7 @@ repository) by pushing updated data.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._ask = not nsargs.quick
|
||||
self._all = nsargs.all
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.output import purple, darkgreen, bold, brown, teal
|
||||
from entropy.const import etpConst
|
||||
@@ -144,7 +145,7 @@ tools.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._repository_id = nsargs.inrepo
|
||||
self._quiet = nsargs.quiet
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
import codecs
|
||||
|
||||
from entropy.const import etpConst
|
||||
@@ -83,7 +84,7 @@ Manage (add, remove, list) configured repositories.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._nsargs = nsargs
|
||||
return self._call_locked, [nsargs.func, None]
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import purple, darkgreen, brown, teal
|
||||
@@ -72,7 +73,7 @@ Remove a package from repository. It's no-brainer actually.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._ask = not nsargs.quick
|
||||
self._nodeps = nsargs.nodeps
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
|
||||
@@ -57,7 +58,7 @@ The package must be already available in the queried repository.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
# setup atoms variable before spawning commit
|
||||
self._packages = nsargs.packages[:]
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import darkgreen, teal
|
||||
@@ -57,7 +58,7 @@ Show current repository, its branch and configured mirrors.
|
||||
parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
return self._call_locked, [self._void, None]
|
||||
|
||||
def _void(self, entropy_server):
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import darkgreen
|
||||
@@ -104,7 +105,7 @@ re-fetching the remote version available on mirrors.
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._local = nsargs.local
|
||||
self._ask = not nsargs.quick
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
|
||||
@@ -77,7 +78,7 @@ For a direct dependency graph, please see *eit graph*.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._quiet = nsargs.quiet
|
||||
self._packages += nsargs.packages
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import purple
|
||||
@@ -77,7 +78,7 @@ If you are interested in dependency string matching, please see
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._quiet = nsargs.quiet
|
||||
self._packages += nsargs.packages
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.const import etpConst
|
||||
from entropy.i18n import _
|
||||
@@ -97,7 +98,7 @@ Show repository status (such as: *configured mirrors*,
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
sys.stderr.write("%s\n" % (err,))
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
return self._call_locked, [self._status, nsargs.repo]
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"""
|
||||
import sys
|
||||
import argparse
|
||||
import functools
|
||||
|
||||
from entropy.i18n import _
|
||||
from entropy.output import teal, purple
|
||||
@@ -106,7 +107,7 @@ Toolset containing all the Entropy Server built-in QA tests available.
|
||||
try:
|
||||
nsargs = parser.parse_args(self._args)
|
||||
except IOError as err:
|
||||
return parser.print_help, []
|
||||
return functools.partial(self.print_help, parser), []
|
||||
|
||||
self._nsargs = nsargs
|
||||
return self._call_locked, [nsargs.func, None]
|
||||
|
||||
Reference in New Issue
Block a user