]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
dnf: Write repos to /etc/yum.repos.d/<distribution>.repo
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 11 Jun 2023 18:24:10 +0000 (20:24 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Sun, 11 Jun 2023 18:24:10 +0000 (20:24 +0200)
Let's allow providing a config file for dnf without also overriding
all the default repositories by writing the default repositories to
a file in /etc/yum.repos.d/.

mkosi/distributions/fedora.py

index 5d8301c2d140f7a348bb972535c5016f1622f8ea..4866b7a9a5be15262536c8b71c5bdb2efb43fc2e 100644 (file)
@@ -123,28 +123,30 @@ class Repo(NamedTuple):
 def setup_dnf(state: MkosiState, repos: Sequence[Repo]) -> None:
     config = state.pkgmngr / "etc/dnf/dnf.conf"
 
-    if config.exists():
-        return
-
-    config.parent.mkdir(exist_ok=True, parents=True)
-
-    with config.open("w") as f:
-        for repo in repos:
-            f.write(
-                dedent(
-                    f"""\
-                    [{repo.id}]
-                    name={repo.id}
-                    {repo.url}
-                    gpgcheck=1
-                    enabled={int(repo.enabled)}
-                    """
+    if not config.exists():
+        config.parent.mkdir(exist_ok=True, parents=True)
+        config.touch()
+
+    repofile = state.pkgmngr / f"etc/yum.repos.d/{state.config.distribution}.repo"
+    if not repofile.exists():
+        repofile.parent.mkdir(exist_ok=True, parents=True)
+        with repofile.open("w") as f:
+            for repo in repos:
+                f.write(
+                    dedent(
+                        f"""\
+                        [{repo.id}]
+                        name={repo.id}
+                        {repo.url}
+                        gpgcheck=1
+                        enabled={int(repo.enabled)}
+                        """
+                    )
                 )
-            )
 
-            for i, url in enumerate(repo.gpgurls):
-                f.write("gpgkey=" if i == 0 else len("gpgkey=") * " ")
-                f.write(f"{url}\n")
+                for i, url in enumerate(repo.gpgurls):
+                    f.write("gpgkey=" if i == 0 else len("gpgkey=") * " ")
+                    f.write(f"{url}\n")
 
 
 def invoke_dnf(