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:
26
rocky_man.py
26
rocky_man.py
@@ -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):
|
||||
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_url = self.generate_repo_url(repo_type)
|
||||
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)
|
||||
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,9 +340,8 @@ 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}"
|
||||
DOWNLOAD_DIR = f"{DOWNLOAD_BASE_DIR}/{RELEASEVER}"
|
||||
MAN_DIR = f"{MAN_BASE_DIR}/{RELEASEVER}"
|
||||
HTML_DIR = f"{HTML_BASE_DIR}/{RELEASEVER}"
|
||||
|
||||
repo_manager = RepoManager(
|
||||
@@ -347,7 +349,7 @@ def main():
|
||||
contentdir = CONTENTDIR,
|
||||
releasever = RELEASEVER,
|
||||
basearch = BASEARCH,
|
||||
repo_type = REPO_TYPE,
|
||||
repo_types = REPO_TYPES,
|
||||
download_dir = DOWNLOAD_DIR,
|
||||
enabled = True,
|
||||
gpgcheck = False
|
||||
@@ -355,7 +357,7 @@ def main():
|
||||
|
||||
man_maker = ManMaker(man_dir=MAN_DIR, html_dir=HTML_DIR)
|
||||
|
||||
print("Downloading packages and generating HTML...")
|
||||
print(f"Downloading packages and generating HTML for {RELEASEVER}...")
|
||||
repo_manager.download_all_packages(man_maker)
|
||||
# repo_manager.download_package("at", man_maker)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user