Skip to content
This repository has been archived by the owner on May 10, 2024. It is now read-only.

Commit

Permalink
Improved handling of missing param error and usage.
Browse files Browse the repository at this point in the history
  • Loading branch information
garnaat committed Oct 4, 2011
1 parent 4f465eb commit 312e98e
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions boto/roboto/awsqueryrequest.py
Expand Up @@ -269,7 +269,17 @@ def process_args(self, **args):
if python_name in self.args:
del self.connection_args[python_name]
if required:
raise RequiredParamError(required)
l = []
for p in self.Params+self.Args:
if p.name in required:
if p.short_name and p.long_name:
l.append('(%s, %s)' % (p.optparse_short_name,
p.optparse_long_name))
elif p.short_name:
l.append('(%s)' % p.optparse_short_name)
else:
l.append('(%s)' % p.optparse_long_name)
raise RequiredParamError(','.join(l))
boto.log.debug('request_params: %s' % self.request_params)
self.process_markers(self.Response)

Expand Down Expand Up @@ -353,8 +363,15 @@ def process_standard_options(self, options, args, d):
sys.excepthook = boto_except_hook(options.debugger,
options.debug)

def get_usage(self):
s = 'usage: %prog [options] '
l = [ a.long_name for a in self.Args ]
s += ' '.join(l)
return s

def build_cli_parser(self):
self.parser = optparse.OptionParser(description=self.Description)
self.parser = optparse.OptionParser(description=self.Description
usage=self.get_usage())
self.add_standard_options()
for param in self.Params:
ptype = action = choices = None
Expand Down

0 comments on commit 312e98e

Please sign in to comment.