return pakfire_repo_set_mirrorlist(self->repo, mirrorlist);
}
+static PyObject* Repo_get_config(RepoObject* self) {
+ char* config = pakfire_repo_get_config(self->repo);
+
+ if (config) {
+ PyObject* obj = PyUnicode_FromString(config);
+ pakfire_free(config);
+
+ return obj;
+ }
+
+ Py_RETURN_NONE;
+}
+
static PyObject* Repo_read_solv(RepoObject* self, PyObject* args) {
const char* filename = NULL;
METH_VARARGS,
NULL,
},
+ {
+ "get_config",
+ (PyCFunction)Repo_get_config,
+ METH_NOARGS,
+ NULL,
+ },
{
"read_solv",
(PyCFunction)Repo_read_solv,
const char* pakfire_repo_get_mirrorlist(PakfireRepo repo);
int pakfire_repo_set_mirrorlist(PakfireRepo repo, const char* mirrorlist);
+char* pakfire_repo_get_config(PakfireRepo repo);
+
int pakfire_repo_is_installed_repo(PakfireRepo repo);
int pakfire_repo_read_solv(PakfireRepo repo, const char* filename, int flags);
pakfire_repo_create;
pakfire_repo_get_baseurl;
pakfire_repo_get_cache;
+ pakfire_repo_get_config;
pakfire_repo_get_name;
pakfire_repo_get_enabled;
pakfire_repo_get_keyfile;
return 0;
}
+PAKFIRE_EXPORT char* pakfire_repo_get_config(PakfireRepo repo) {
+ if (pakfire_repo_is_installed_repo(repo) == 0)
+ return NULL;
+
+ char buffer[1024 * 4];
+ char* p = buffer;
+
+ // Headline
+ p += sprintf(p, "[repo:%s]\n", pakfire_repo_get_name(repo));
+
+ // Enabled
+ p += sprintf(p, "enabled = %d\n", pakfire_repo_get_enabled(repo));
+
+ // Base URL
+ const char* baseurl = pakfire_repo_get_baseurl(repo);
+ if (baseurl)
+ p += sprintf(p, "baseurl = %s\n", baseurl);
+
+ // Mirror List
+ const char* mirrorlist = pakfire_repo_get_mirrorlist(repo);
+ if (mirrorlist)
+ p += sprintf(p, "mirrors = %s\n", mirrorlist);
+
+ // Key File
+ const char* keyfile = pakfire_repo_get_keyfile(repo);
+ if (keyfile)
+ p += sprintf(p, "keyfile = %s\n", keyfile);
+
+ // Priority
+ p += sprintf(p, "priority = %d\n", pakfire_repo_get_priority(repo));
+
+ return pakfire_strdup(buffer);
+}
+
PAKFIRE_EXPORT int pakfire_repo_is_installed_repo(PakfireRepo repo) {
PakfireRepo installed_repo = pakfire_get_installed_repo(repo->pakfire);
return "\n\n".join(dumps)
- def get_config(self):
- """
- Return the configuration as a list of string which
- can be written to a configuration file.
- """
- pass
-
class RepositoryDummy(RepositoryFactory):
"""
grabber.increment_mirror(grabber)
return os.path.join(self.cache.path, cache_filename)
-
- def get_config(self):
- if self.enabled:
- enabled = "1"
- else:
- enabled = "0"
-
- lines = [
- "[repo:%s]" % self.name,
- "description = %s" % self.description,
- "enabled = %s" % enabled,
- "baseurl = %s" % self.baseurl,
- ]
-
- mirrors = self.settings.get("mirrors", None)
- if mirrors:
- lines.append("mirrors = %s" % mirrors)
-
- lines += [
- #"gpgkey = %s" % self.keyfile,
- "priority = %s" % self.priority,
- ]
-
- return lines