class PakfireConfig(base.Object):
def init(self, distro=None, repos=None, vendor=None, contact=None,
- arch=None, mirrored=True):
+ arch=None, include_source=False, mirrored=True):
self.distro = distro
self.repos = set()
# Architecture
self.arch = arch
+ # Should the configuration include the source repositories?
+ self.include_source = include_source
+
# Should the repositories use any mirrors?
self.mirrored = mirrored
# Add the repository configurations
for repo in self.repos:
- repo.write_config(config, local=local, mirrored=self.mirrored)
+ repo.write_config(config, local=local,
+ include_source=self.include_source, mirrored=self.mirrored)
return config
"mirrorlist?arch=%{arch}"
))
- def write_config(self, config, local=False, mirrored=True):
+ def write_config(self, config, include_source=False, **kwargs):
+ # Write the default configuration
+ self._write_config(config, self.slug, "%{arch}", **kwargs)
+
+ # Add another entry for the source repository
+ if include_source:
+ self._write_config(config, "%s-source" % self.slug, "src", **kwargs)
+
+ def _write_config(self, config, name, arch, local=False, mirrored=True):
# Disable mirroring if local or not mirrored
if local or not self.mirrored:
mirrored = False
- config["repo:%s" % self.slug] = {
+ config["repo:%s" % name] = {
# Description
"description" : "%s - %s" % (self.distro.name, self.name),
# Base URL
- "baseurl" : "file://%s" % self.local_path("%{arch}") if local else self.download_url,
+ "baseurl" : "file://%s" % self.local_path(arch) if local else self.download_url,
# Key
"key" : self.key.public_key or "",