Skip to content

Commit

Permalink
Improve detail help messages.
Browse files Browse the repository at this point in the history
  • Loading branch information
Maxbey committed Mar 27, 2017
1 parent 5cae62d commit 8eb4f81
Show file tree
Hide file tree
Showing 17 changed files with 131 additions and 51 deletions.
6 changes: 3 additions & 3 deletions termius/account/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def __init__(self, app, app_args, cmd_name=None):


class LoginCommand(BaseAccountCommand):
"""Sign into Termius cloud."""
"""sign into Termius Cloud"""

# pylint: disable=no-self-use
def prompt_username(self):
Expand Down Expand Up @@ -53,7 +53,7 @@ def take_action(self, parsed_args):


class LogoutCommand(BaseAccountCommand):
"""Sign out Termius cloud."""
"""sign out Termius Cloud"""

def take_action(self, _):
"""Process CLI call."""
Expand All @@ -63,7 +63,7 @@ def take_action(self, _):


class SettingsCommand(BaseAccountCommand):
"""Update account settings."""
"""update account settings"""

def extend_parser(self, parser):
"""Add more arguments to parser."""
Expand Down
74 changes: 73 additions & 1 deletion termius/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@
from cliff.app import App
# pylint: disable=import-error
from cliff.commandmanager import CommandManager
from cliff import argparse

from termius.core.analytics import Analytics
from termius.core.commands.help import HelpCommand
from termius.core.commands.help import HelpCommand, HelpAction
from . import __version__
from .core.signals import (
post_create_instance,
Expand Down Expand Up @@ -71,3 +72,74 @@ def collect_analytics(self, cmd):
"""Make Analytics instance and send analytics."""
analytics = Analytics(self, getattr(cmd, 'config', None))
analytics.send_analytics(cmd.cmd_name)

def build_option_parser(self, description, version,
argparse_kwargs=None):
"""Return an argparse option parser for this application.
Subclasses may override this method to extend
the parser with more global options.
:param description: full description of the application
:paramtype description: str
:param version: version number for the application
:paramtype version: str
:param argparse_kwargs: extra keyword argument passed to the
ArgumentParser constructor
:paramtype extra_kwargs: dict
"""
argparse_kwargs = argparse_kwargs or {}
parser = argparse.ArgumentParser(
description=description,
add_help=False,
**argparse_kwargs
)
parser.add_argument(
'--version',
action='version',
version='%(prog)s {0}'.format(version),
help='display version information and exit'
)
verbose_group = parser.add_mutually_exclusive_group()
verbose_group.add_argument(
'-v', '--verbose',
action='count',
dest='verbose_level',
default=self.DEFAULT_VERBOSE_LEVEL,
help='provide a detailed output',
)
verbose_group.add_argument(
'-q', '--quiet',
action='store_const',
dest='verbose_level',
const=0,
help='only display warnings and errors',
)
parser.add_argument(
'--log-file',
action='store',
default=None,
help='record output in a designated file',
)
if self.deferred_help:
parser.add_argument(
'-h', '--help',
dest='deferred_help',
action='store_true',
help="display help message",
)
else:
parser.add_argument(
'-h', '--help',
action=HelpAction,
nargs=0,
default=self, # tricky
help="display help message",
)
parser.add_argument(
'--debug',
default=False,
action='store_true',
help='enable debugging mode',
)
return parser
8 changes: 7 additions & 1 deletion termius/cloud/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,13 @@ def extend_parser(self, parser):
action='store_const', const='encrypt',
dest='operation'
)
parser.add_argument('text', nargs=1, metavar='TEXT', action='store')
parser.add_argument(
'text',
nargs=1,
metavar='TEXT',
action='store',
help='string data'
)
return parser

def process_sync(self, api_controller):
Expand Down
4 changes: 3 additions & 1 deletion termius/core/commands/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ def __init__(self, app, app_args, cmd_name=None):
def get_parser(self, prog_name):
"""Create command line argument parser."""
parser = super(AbstractCommand, self).get_parser(prog_name)
parser.add_argument('--log-file', help='Path to log file.')
parser.add_argument(
'--log-file', help='record output in a designated file'
)
return self.extend_parser(parser)

# pylint: disable=no-self-use
Expand Down
7 changes: 4 additions & 3 deletions termius/core/commands/help.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,10 @@ def take_action(self, parsed_args):
except ValueError:
# Did not find an exact match
cmd = parsed_args.cmd[0]
fuzzy_matches = [k[0] for k in self.app.command_manager
if k[0].startswith(cmd)
]
fuzzy_matches = [
k[0] for k in self.app.command_manager
if k[0].startswith(cmd)
]
if not fuzzy_matches:
raise
self.app.stdout.write('Command "%s" matches:\n' % cmd)
Expand Down
6 changes: 3 additions & 3 deletions termius/core/commands/mixins.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,15 +218,15 @@ def delete_instance(self, instance):

def log_create(self, entry):
"""Log creating new model entry."""
self._general_log(entry, 'Create object.')
self._general_log(entry, 'Entry created.')

def log_update(self, entry):
"""Log updating model entry."""
self._general_log(entry, 'Update object.')
self._general_log(entry, 'Entry updated.')

def log_delete(self, entry):
"""Log deleting model entry."""
self._general_log(entry, 'Delete object.')
self._general_log(entry, 'Entry deleted.')

def _general_log(self, entry, message):
self.app.stdout.write('{}\n'.format(entry.id))
Expand Down
6 changes: 3 additions & 3 deletions termius/core/commands/single.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,15 +59,15 @@ def get_parser(self, prog_name):
parser = super(DetailCommand, self).get_parser(prog_name)
parser.add_argument(
'-d', '--delete',
action='store_true', help='Delete entries.'
action='store_true', help='delete entries'
)
parser.add_argument(
'-L', '--label', metavar='NAME',
help="Entry's label in Termius"
help="entry label"
)
parser.add_argument(
'entry', nargs='*', metavar='ID or NAME',
help='Pass to edit exited entries.'
help='pass to edit existed entries'
)
return parser

Expand Down
2 changes: 1 addition & 1 deletion termius/formatters/ssh.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def add_argument_group(self, parser):
group.add_argument(
'--address',
action='store',
help='Use passed address for ssh command',
help='use passed address for ssh command',
)

def emit_one(self, column_names, data, stdout, parsed_args):
Expand Down
6 changes: 3 additions & 3 deletions termius/handlers/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def extend_parser(self, parser):
"""Add more arguments to parser."""
parser.add_argument(
'-g', '--parent-group',
metavar='PARENT_GROUP', help="Parent group's id or name."
metavar='PARENT_GROUP', help="parent group id or name"
)
self.ssh_config_args.add_agrs(parser)
return parser
Expand Down Expand Up @@ -72,12 +72,12 @@ def extend_parser(self, parser):
"""Add more arguments to parser."""
parser.add_argument(
'-r', '--recursive', action='store_true',
help=('List groups of current group '
help=('list groups of current group '
'(default is current group) recursively.')
)
parser.add_argument(
'group', nargs='?', metavar='GROUP_ID or GROUP_NAME',
help='List groups in this group.'
help='list groups in this group'
)
return parser

Expand Down
10 changes: 5 additions & 5 deletions termius/handlers/host.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ def extend_parser(self, parser):
parser.add_argument(
'-t', '--tag', metavar='TAG_NAME',
action='append', default=[], dest='tags',
help='Specify the tag(s) for host, can be repeated'
help='specify the tag(s) for host, can be repeated'
)
parser.add_argument(
'-g', '--group', metavar='GROUP_ID or GROUP_NAME',
help='Move hosts to this group.'
help='move hosts to this group'
)
parser.add_argument(
'-a', '--address',
metavar='ADDRESS', help='Address of host.'
metavar='ADDRESS', help='address of host'
)

self.ssh_config_args.add_agrs(parser)
Expand Down Expand Up @@ -91,11 +91,11 @@ def extend_parser(self, parser):
parser.add_argument(
'-t', '--tag', metavar='TAG_NAME',
action='append', default=[], dest='tags',
help=('Specify the tag(s) for host, can be repeated')
help='specify the tag(s) for host, can be repeated'
)
parser.add_argument(
'-g', '--group', metavar='GROUP_ID or GROUP_NAME',
help=('List hosts in group (default is current group).')
help=('list hosts in group (current group by default)')
)
return parser

Expand Down
8 changes: 4 additions & 4 deletions termius/handlers/identity.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,19 @@ def extend_parser(self, parser):
"""Add more arguments to parser."""
parser.add_argument(
'-u', '--username',
metavar='USERNAME', help="Username of host's user."
metavar='USERNAME', help="username for SSH authorization"
)
parser.add_argument(
'-p', '--password',
metavar='PASSWORD', help="Password of Host's user."
metavar='PASSWORD', help="password for SSH authorization"
)
parser.add_argument(
'-i', '--identity-file',
metavar='PRIVATE_KEY', help='Private key.'
metavar='PRIVATE_KEY', help='private key'
)
parser.add_argument(
'-k', '--ssh-key',
metavar='SSH_KEY', help="Serveraduitor's ssh key's name or id."
metavar='SSH_KEY', help="ssh key name or id"
)
return parser

Expand Down
6 changes: 3 additions & 3 deletions termius/handlers/info.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,16 @@ def extend_parser(self, parser):
parser.add_argument(
'-G', '--group', dest='entry_type',
action='store_const', const=Group, default=Host,
help='Show info about group.'
help='show info about group'
)
parser.add_argument(
'-H', '--host', dest='entry_type',
action='store_const', const=Host, default=Host,
help='Show info about host.'
help='show info about host'
)
parser.add_argument(
'-M', '--no-merge', action='store_true',
help='Do not merge configs.'
help='do not merge configs'
)
parser.add_argument('id_or_name', metavar='ID or NAME')
return parser
Expand Down
10 changes: 5 additions & 5 deletions termius/handlers/pf_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,23 +38,23 @@ def extend_parser(self, parser):
"""Add more arguments to parser."""
parser.add_argument(
'-H', '--host', metavar='HOST_ID or HOST_NAME',
help='Create port forwarding rule for this host.'
help='create port forwarding rule for this host'
)
parser.add_argument(
'--dynamic', dest='pf_type', action='store_const',
const='D', help='Dynamic port forwarding.'
const='D', help='dynamic port forwarding'
)
parser.add_argument(
'--remote', dest='pf_type', action='store_const',
const='R', help='Remote port forwarding.'
const='R', help='remote port forwarding'
)
parser.add_argument(
'--local', dest='pf_type', action='store_const',
const='L', help='Local port forwarding.'
const='L', help='local port forwarding'
)
parser.add_argument(
'--binding', metavar='BINDINDS',
help=('Specify binding of ports and addresses '
help=('specify binding of ports and addresses '
'[bind_address:]port or [bind_address:]port:host:hostport')
)
return parser
Expand Down
2 changes: 1 addition & 1 deletion termius/handlers/snippet.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def extend_parser(self, parser):
"""Add more arguments to parser."""
parser.add_argument(
'-s', '--script', metavar='SCRIPT',
help='Shell Script for snippet.'
help='shell script for snippet'
)
return parser

Expand Down
Loading

0 comments on commit 8eb4f81

Please sign in to comment.