diff --git a/sshm/main.py b/sshm/main.py index dff1cb3..36c0462 100755 --- a/sshm/main.py +++ b/sshm/main.py @@ -44,6 +44,8 @@ def get_argparse_args(args=None): help='Disable command formatting.') parser.add_argument('-q', '--quiet', action='store_true', default=False, help='Hide server information on output. This implies sorted.') + parser.add_argument('-u', '--ssh-quiet', action='store_true', default=False, + help='Pass -q to the SSH command to quiet its output.') parser.add_argument('--version', action='version', version='%(prog)s '+__version__) args, extra_args = parser.parse_known_args(args=args) @@ -64,6 +66,10 @@ def get_argparse_args(args=None): if args.quiet: args.sorted_output = True + + # Pass -q to SSH command + if args.ssh_quiet: + extra_args.insert(0, '-q') return (args, args.command, extra_args) diff --git a/sshm/test/test_main.py b/sshm/test/test_main.py index 8b05052..382981c 100755 --- a/sshm/test/test_main.py +++ b/sshm/test/test_main.py @@ -86,6 +86,13 @@ def test_get_argparse_args(self): self.assertEqual(command, 'ls') self.assertEqual(extra_args, []) + # You can quiet SSH (passing -q to ssh) by using -u + provided = ['example.com', 'command', '-o Something', '-u'] + args, command, extra_args = get_argparse_args(provided) + self.assertEqual(args.servers, ['example.com',]) + self.assertEqual(command, 'command') + self.assertEqual(extra_args, ['-q', '-o Something']) + def test__print_handling_newlines(self): """