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:
|
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.base_url = base_url
|
||||||
self.contentdir = contentdir
|
self.contentdir = contentdir
|
||||||
self.releasever = releasever
|
self.releasever = releasever
|
||||||
self.basearch = basearch
|
self.basearch = basearch
|
||||||
self.repo_type = repo_type
|
self.repo_type = repo_types
|
||||||
self.repo_name = f"{repo_type}-{releasever}"
|
|
||||||
|
|
||||||
self.download_dir = download_dir
|
self.download_dir = download_dir
|
||||||
|
|
||||||
@@ -186,8 +185,8 @@ class RepoManager:
|
|||||||
self.download_dir.mkdir(parents=True, exist_ok=True)
|
self.download_dir.mkdir(parents=True, exist_ok=True)
|
||||||
self._configure_repo()
|
self._configure_repo()
|
||||||
|
|
||||||
def generate_repo_url(self):
|
def generate_repo_url(self, repo_type: str = None):
|
||||||
repo_url = urljoin(self.base_url, f"{self.contentdir}/{self.releasever}/{self.repo_type}/{self.basearch}/os/")
|
repo_url = urljoin(self.base_url, f"{self.contentdir}/{self.releasever}/{repo_type}/{self.basearch}/os/")
|
||||||
return repo_url
|
return repo_url
|
||||||
|
|
||||||
def print_repo_url(self):
|
def print_repo_url(self):
|
||||||
@@ -195,13 +194,17 @@ class RepoManager:
|
|||||||
print(f"Repository URL: {repo_url}")
|
print(f"Repository URL: {repo_url}")
|
||||||
|
|
||||||
def _configure_repo(self):
|
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 = 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.baseurl = [repo_url]
|
||||||
repo.enabled = self.enabled
|
repo.enabled = self.enabled
|
||||||
repo.gpgcheck = self.gpgcheck
|
repo.gpgcheck = self.gpgcheck
|
||||||
self.base.repos.add(repo)
|
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):
|
def print_repo(self):
|
||||||
repo = self.base.repos
|
repo = self.base.repos
|
||||||
@@ -337,9 +340,8 @@ def main():
|
|||||||
HTML_BASE_DIR = "./html"
|
HTML_BASE_DIR = "./html"
|
||||||
|
|
||||||
for RELEASEVER in RELEASEVERS:
|
for RELEASEVER in RELEASEVERS:
|
||||||
for REPO_TYPE in REPO_TYPES:
|
DOWNLOAD_DIR = f"{DOWNLOAD_BASE_DIR}/{RELEASEVER}"
|
||||||
DOWNLOAD_DIR = f"{DOWNLOAD_BASE_DIR}/{RELEASEVER}/{REPO_TYPE}"
|
MAN_DIR = f"{MAN_BASE_DIR}/{RELEASEVER}"
|
||||||
MAN_DIR = f"{MAN_BASE_DIR}/{RELEASEVER}/{REPO_TYPE}"
|
|
||||||
HTML_DIR = f"{HTML_BASE_DIR}/{RELEASEVER}"
|
HTML_DIR = f"{HTML_BASE_DIR}/{RELEASEVER}"
|
||||||
|
|
||||||
repo_manager = RepoManager(
|
repo_manager = RepoManager(
|
||||||
@@ -347,7 +349,7 @@ def main():
|
|||||||
contentdir = CONTENTDIR,
|
contentdir = CONTENTDIR,
|
||||||
releasever = RELEASEVER,
|
releasever = RELEASEVER,
|
||||||
basearch = BASEARCH,
|
basearch = BASEARCH,
|
||||||
repo_type = REPO_TYPE,
|
repo_types = REPO_TYPES,
|
||||||
download_dir = DOWNLOAD_DIR,
|
download_dir = DOWNLOAD_DIR,
|
||||||
enabled = True,
|
enabled = True,
|
||||||
gpgcheck = False
|
gpgcheck = False
|
||||||
@@ -355,7 +357,7 @@ def main():
|
|||||||
|
|
||||||
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...")
|
print(f"Downloading packages and generating HTML for {RELEASEVER}...")
|
||||||
repo_manager.download_all_packages(man_maker)
|
repo_manager.download_all_packages(man_maker)
|
||||||
# repo_manager.download_package("at", man_maker)
|
# repo_manager.download_package("at", man_maker)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user