Better custom repo installation
This commit is contained in:
@@ -49,7 +49,29 @@ class DEBPackage(Package):
|
||||
def restore_system(self):
|
||||
utils.exec_cmd("rm -f {}".format(self.policy_file))
|
||||
|
||||
def update(self, force=False):
|
||||
def add_custom_repository(self,
|
||||
name: str,
|
||||
url: str,
|
||||
key_url: str,
|
||||
codename: str,
|
||||
with_source: bool = True):
|
||||
key_file = f"/etc/apt/keyrings/{name}.gpg"
|
||||
utils.exec_cmd(
|
||||
f"wget -O - {key_url} | gpg --dearmor | sudo tee {key_file} > /dev/null"
|
||||
)
|
||||
line_types = ["deb"]
|
||||
if with_source:
|
||||
line_types.append("deb-src")
|
||||
for line_type in line_types:
|
||||
line = (
|
||||
f"{line_type} [arch=amd64 signed-by={key_file}] "
|
||||
f"{url} {codename} main"
|
||||
)
|
||||
target_file = f"/etc/apt/source.list.d/{name}.list"
|
||||
utils.exec_cmd(f'echo "{line} | sude tee {target_file}')
|
||||
self.index_updated = False
|
||||
|
||||
def update(self):
|
||||
"""Update local cache."""
|
||||
if self.index_updated and not force:
|
||||
return
|
||||
@@ -89,7 +111,7 @@ class RPMPackage(Package):
|
||||
|
||||
def __init__(self, dist_name):
|
||||
"""Initialize backend."""
|
||||
super(RPMPackage, self).__init__(dist_name)
|
||||
super().__init__(dist_name)
|
||||
if "centos" in dist_name:
|
||||
self.install("epel-release")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user