docs: def mod_repo(repo, **kwargs):
      '''
      Modify one or more values for a repo.  If the repo does not exist, it will
      be created, so long as uri is defined.
  
      The following options are available to modify a repo definition:
  
      repo
          alias by which opkg refers to the repo.
      uri
          the URI to the repo.
      compressed
          defines (True or False) if the index file is compressed
      enabled
          enable or disable (True or False) repository
          but do not remove if disabled.
      refresh
          enable or disable (True or False) auto-refresh of the repositories
  
      CLI Examples:
  
      .. code-block:: bash
  
          salt '*' pkg.mod_repo repo uri=http://new/uri
          salt '*' pkg.mod_repo repo enabled=False
      '''
      repos = list_repos()
      found = False
      uri = ''
      if 'uri' in kwargs:
          uri = kwargs['uri']
  
      for repository in repos:
          source = repos[repository][0]
          if source['name'] == repo:
              found = True
              repostr = ''
              if 'enabled' in kwargs and not kwargs['enabled']:
                  repostr += '# '
              if 'compressed' in kwargs:
                  repostr += 'src/gz ' if kwargs['compressed'] else 'src'
              else:
                  repostr += 'src/gz' if source['compressed'] else 'src'
              repo_alias = kwargs['alias'] if 'alias' in kwargs else repo
              if ' ' in repo_alias:
                  repostr += ' "{0}"'.format(repo_alias)
              else:
                  repostr += ' {0}'.format(repo_alias)
              repostr += ' {0}'.format(kwargs['uri'] if 'uri' in kwargs else source['uri'])
              trusted = kwargs.get('trusted')
              repostr = _set_trusted_option_if_needed(repostr, trusted) if trusted is not None else \
                  _set_trusted_option_if_needed(repostr, source.get('trusted'))
              _mod_repo_in_file(repo, repostr, source['file'])
          elif uri and source['uri'] == uri:
              raise CommandExecutionError(
                  'Repository \'{0}\' already exists as \'{1}\'.'.format(uri, source['name']))
  
      if not found:
          # Need to add a new repo
          if 'uri' not in kwargs:
              raise CommandExecutionError(
                  'Repository \'{0}\' not found and no URI passed to create one.'.format(repo))
          properties = {'uri': kwargs['uri']}
          # If compressed is not defined, assume True
          properties['compressed'] = kwargs['compressed'] if 'compressed' in kwargs else True
          # If enabled is not defined, assume True
          properties['enabled'] = kwargs['enabled'] if 'enabled' in kwargs else True
          properties['trusted'] = kwargs.get('trusted')
          _add_new_repo(repo, properties)
  
      if 'refresh' in kwargs:
          refresh_db()