Loading all repos into the sack to avoid modularity problems

Signed-off-by: Stephen Simpson <ssimpson89@users.noreply.github.com>
This commit is contained in:
Stephen Simpson
2025-01-14 09:30:01 -06:00
parent 1307ca54a3
commit 8a652fca4f

View File

@@ -165,13 +165,12 @@ class ManMaker:
}
class RepoManager:
def __init__(self, base_url: str, contentdir: str, releasever: str, basearch: str, repo_type: str, download_dir, enabled: bool = True, gpgcheck: bool = False):
def __init__(self, base_url: str, contentdir: str, releasever: str, basearch: str, repo_types: str, download_dir, enabled: bool = True, gpgcheck: bool = False):
self.base_url = base_url
self.contentdir = contentdir
self.releasever = releasever
self.basearch = basearch
self.repo_type = repo_type
self.repo_name = f"{repo_type}-{releasever}"
self.repo_type = repo_types
self.download_dir = download_dir
@@ -186,8 +185,8 @@ class RepoManager:
self.download_dir.mkdir(parents=True, exist_ok=True)
self._configure_repo()
def generate_repo_url(self):
repo_url = urljoin(self.base_url, f"{self.contentdir}/{self.releasever}/{self.repo_type}/{self.basearch}/os/")
def generate_repo_url(self, repo_type: str = None):
repo_url = urljoin(self.base_url, f"{self.contentdir}/{self.releasever}/{repo_type}/{self.basearch}/os/")
return repo_url
def print_repo_url(self):
@@ -195,13 +194,17 @@ class RepoManager:
print(f"Repository URL: {repo_url}")
def _configure_repo(self):
repo = dnf.repo.Repo(self.repo_name, self.base.conf)
repo_url = self.generate_repo_url()
repo.baseurl = [repo_url]
repo.enabled = self.enabled
repo.gpgcheck = self.gpgcheck
self.base.repos.add(repo)
self.base.fill_sack(load_system_repo=False)
for repo_type in self.repo_type:
self.repo_name = f"{repo_type}-{self.releasever}"
repo = dnf.repo.Repo(self.repo_name, self.base.conf)
repo_url = self.generate_repo_url(repo_type)
repo.baseurl = [repo_url]
repo.enabled = self.enabled
repo.gpgcheck = self.gpgcheck
self.base.repos.add(repo)
print(f"Repository added: {repo.name}")
self.base.fill_sack(load_system_repo=False, load_available_repos=True)
def print_repo(self):
repo = self.base.repos
@@ -337,27 +340,26 @@ def main():
HTML_BASE_DIR = "./html"
for RELEASEVER in RELEASEVERS:
for REPO_TYPE in REPO_TYPES:
DOWNLOAD_DIR = f"{DOWNLOAD_BASE_DIR}/{RELEASEVER}/{REPO_TYPE}"
MAN_DIR = f"{MAN_BASE_DIR}/{RELEASEVER}/{REPO_TYPE}"
HTML_DIR = f"{HTML_BASE_DIR}/{RELEASEVER}"
DOWNLOAD_DIR = f"{DOWNLOAD_BASE_DIR}/{RELEASEVER}"
MAN_DIR = f"{MAN_BASE_DIR}/{RELEASEVER}"
HTML_DIR = f"{HTML_BASE_DIR}/{RELEASEVER}"
repo_manager = RepoManager(
base_url = BASE_URL,
contentdir = CONTENTDIR,
releasever = RELEASEVER,
basearch = BASEARCH,
repo_type = REPO_TYPE,
download_dir = DOWNLOAD_DIR,
enabled = True,
gpgcheck = False
)
repo_manager = RepoManager(
base_url = BASE_URL,
contentdir = CONTENTDIR,
releasever = RELEASEVER,
basearch = BASEARCH,
repo_types = REPO_TYPES,
download_dir = DOWNLOAD_DIR,
enabled = True,
gpgcheck = False
)
man_maker = ManMaker(man_dir=MAN_DIR, html_dir=HTML_DIR)
man_maker = ManMaker(man_dir=MAN_DIR, html_dir=HTML_DIR)
print("Downloading packages and generating HTML...")
repo_manager.download_all_packages(man_maker)
# repo_manager.download_package("at", man_maker)
print(f"Downloading packages and generating HTML for {RELEASEVER}...")
repo_manager.download_all_packages(man_maker)
# repo_manager.download_package("at", man_maker)
generate_index(RELEASEVER, HTML_DIR)
save_json(sitemap, Path(f"{HTML_DIR}/list.json"))