aboutsummaryrefslogtreecommitdiffstats
path: root/libbe/ui
diff options
context:
space:
mode:
Diffstat (limited to 'libbe/ui')
-rwxr-xr-xlibbe/ui/command_line.py20
-rw-r--r--libbe/ui/util/user.py18
2 files changed, 25 insertions, 13 deletions
diff --git a/libbe/ui/command_line.py b/libbe/ui/command_line.py
index e84d32a..b0b52af 100755
--- a/libbe/ui/command_line.py
+++ b/libbe/ui/command_line.py
@@ -27,6 +27,7 @@ import os
import sys
import libbe
+import libbe.bugdir
import libbe.command
import libbe.command.util
import libbe.version
@@ -52,11 +53,14 @@ class CmdOptionParser(optparse.OptionParser):
option.validate()
self._option_by_name[option.name] = option
opt_strings = ['--'+option.name]
+ dest = option.name.replace('-', '_')
+ assert '_' not in option.name, \
+ 'Non-reconstructable option name %s' % option.name
if option.short_name != None:
opt_strings.append('-'+option.short_name)
if option.arg == None: # a callback option
opt = optparse.Option(
- *opt_strings, action='callback',
+ *opt_strings, action='callback', dest=dest,
callback=self.callback, help=option.help)
else:
kwargs = {}
@@ -68,7 +72,7 @@ class CmdOptionParser(optparse.OptionParser):
opt = optparse.Option(
*opt_strings, metavar=option.arg.metavar,
default=option.arg.default, action=action,
- help=option.help, **kwargs)
+ dest=dest, help=option.help, **kwargs)
opt._option = option
self.add_option(opt)
@@ -76,7 +80,11 @@ class CmdOptionParser(optparse.OptionParser):
args = self._get_args(args)
options,parsed_args = optparse.OptionParser.parse_args(
self, args=args, values=values)
- for name,value in options.__dict__.items():
+ options = options.__dict__
+ for name,value in options.items():
+ if '_' in name: # reconstruct original option name
+ options[name.replace('_', '-')] = options.pop(name)
+ for name,value in options.items():
if value == '--complete':
argument = None
option = self._option_by_name[name]
@@ -231,9 +239,9 @@ def main():
return 1
paginate = 'auto'
- if options.paginate == True:
+ if options['paginate'] == True:
paginate = 'always'
- if options.no_pager== True:
+ if options['no-pager'] == True:
paginate = 'never'
libbe.ui.util.pager.run_pager(paginate)
@@ -249,7 +257,7 @@ def main():
if command.requires_bugdir == True:
storage = libbe.storage.get_storage(options['repo'])
storage.connect()
- bugdir = BugDir(storage)
+ bugdir = libbe.bugdir.BugDir(storage, from_storage=True)
else:
storage = None
bugdir = None
diff --git a/libbe/ui/util/user.py b/libbe/ui/util/user.py
index de2138c..64eb30c 100644
--- a/libbe/ui/util/user.py
+++ b/libbe/ui/util/user.py
@@ -7,6 +7,10 @@ example,
Note that the Arch VCS backend *enforces* ids with this format.
"""
+import re
+from socket import gethostname
+
+import libbe
import libbe.storage.util.config
def _get_fallback_username(self):
@@ -23,11 +27,11 @@ def _get_fallback_email(self):
name = _get_fallback_username()
return "%s@%s" % (name, hostname)
-def create_user_id(self, name, email=None):
+def create_user_id(name, email=None):
"""
- >>> create_id("John Doe", "jdoe@example.com")
+ >>> create_user_id("John Doe", "jdoe@example.com")
'John Doe <jdoe@example.com>'
- >>> create_id("John Doe")
+ >>> create_user_id("John Doe")
'John Doe'
"""
assert len(name) > 0
@@ -36,14 +40,14 @@ def create_user_id(self, name, email=None):
else:
return "%s <%s>" % (name, email)
-def parse_user_id(self, value):
+def parse_user_id(value):
"""
- >>> parse_id("John Doe <jdoe@example.com>")
+ >>> parse_user_id("John Doe <jdoe@example.com>")
('John Doe', 'jdoe@example.com')
- >>> parse_id("John Doe")
+ >>> parse_user_id("John Doe")
('John Doe', None)
>>> try:
- ... parse_id("John Doe <jdoe@example.com><what?>")
+ ... parse_user_id("John Doe <jdoe@example.com><what?>")
... except AssertionError:
... print "Invalid match"
Invalid match