docs: def _repo(self, args):
          '''
          Process repo commands
          '''
          args.pop(0)
          command = args[0]
          if command == 'list':
              self._repo_list(args)
          elif command == 'packages':
              self._repo_packages(args)
          elif command == 'search':
              self._repo_packages(args, search=True)
          elif command == 'update':
              self._download_repo_metadata(args)
          elif command == 'create':
              self._create_repo(args)
          else:
              raise SPMInvocationError('Invalid repo command \'{0}\''.format(command))