text: # Copyright 2016-2017 Open Source Robotics Foundation, Inc.
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #     http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  try:
      from argcomplete.completers import DirectoriesCompleter
  except ImportError:
      def DirectoriesCompleter():
          return None
  
  import sys
  
  from sros2.api import list_keys
  from sros2.verb import VerbExtension
  
  
  class ListKeysVerb(VerbExtension):
      """List keys."""
  
      def add_arguments(self, parser, cli_name):
          arg = parser.add_argument('ROOT', help='root path of keystore')
          arg.completer = DirectoriesCompleter()
  
      def main(self, *, args):
          try:
              if list_keys(args.ROOT):
                  return 0
          except FileNotFoundError as e:
              print('No such file or directory: {!r}'.format(e.filename), file=sys.stderr)
          return 1
  