Use pyalpm PacmanConfig instead of pulling repos manually
This commit is contained in:
parent
45b80ecab4
commit
a22774da5f
@ -1,33 +1,13 @@
|
||||
"""Module for config file helper functions."""
|
||||
|
||||
import configparser
|
||||
|
||||
from pathlib import Path
|
||||
from pycman.config import PacmanConfig
|
||||
|
||||
# ========== Constants ==========
|
||||
PACMAN_CONF = Path("/etc/pacman.conf")
|
||||
|
||||
|
||||
# ========== Functions ==========
|
||||
def parse_configfile(filepath):
|
||||
"""Parse a config file given its path and return
|
||||
a ConfigParser object.
|
||||
|
||||
:param path: path to config file to parse
|
||||
:type path: str, bytes, or path-like object
|
||||
:returns: object used to parse config file
|
||||
:rtype: ConfigParser object
|
||||
:raises FileNotFoundError: if path does not exist
|
||||
"""
|
||||
if not Path(filepath).is_file():
|
||||
raise FileNotFoundError(f"{filepath} does not exist")
|
||||
|
||||
config_reader = configparser.ConfigParser(strict=False, allow_no_value=True)
|
||||
config_reader.read(filepath)
|
||||
|
||||
return config_reader
|
||||
|
||||
|
||||
def list_configured_repos():
|
||||
"""Read /etc/pacman.conf to list all configured repositories.
|
||||
|
||||
@ -35,12 +15,10 @@ def list_configured_repos():
|
||||
:returns: all repos configured on the system
|
||||
:rtype: list
|
||||
"""
|
||||
parsed_config = parse_configfile(PACMAN_CONF)
|
||||
if not Path(PACMAN_CONF).is_file():
|
||||
raise FileNotFoundError(f"{PACMAN_CONF} does not exist")
|
||||
|
||||
repos = parsed_config.sections()
|
||||
# remove the 'options' entry from the list
|
||||
del repos[repos.index("options")]
|
||||
config = PacmanConfig()
|
||||
config.load_from_file(PACMAN_CONF)
|
||||
|
||||
repos.sort()
|
||||
|
||||
return repos
|
||||
return list(config.repos)
|
||||
|
Loading…
x
Reference in New Issue
Block a user