aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'g_elpa/elpa_db.py')
-rw-r--r--g_elpa/elpa_db.py26
1 files changed, 11 insertions, 15 deletions
diff --git a/g_elpa/elpa_db.py b/g_elpa/elpa_db.py
index 7628502..0196b89 100644
--- a/g_elpa/elpa_db.py
+++ b/g_elpa/elpa_db.py
@@ -23,26 +23,22 @@ else:
from urllib.parse import urljoin
from g_sorcery.g_collections import Dependency, Package, serializable_elist
-from g_sorcery.package_db import PackageDB
-from g_sorcery.fileutils import load_remote_file
+from g_sorcery.package_db import DBGenerator
from g_sorcery.exceptions import SyncError
-class ElpaDB(PackageDB):
- def __init__(self, directory, config = None, common_config = None):
- super(ElpaDB, self).__init__(directory, config, common_config)
-
- def get_download_uries(self):
- ac_uri = urljoin(self.repo_uri, 'archive-contents')
+class ElpaDBGenerator(DBGenerator):
+ def get_download_uries(self, common_config, config):
+ ac_uri = urljoin(config["repo_uri"], 'archive-contents')
return [{"uri" : ac_uri, "parser" : sexpdata.load}]
- def process_data(self, data):
-
+ def process_data(self, pkg_db, data, common_config, config):
archive_contents = data['archive-contents']
+ repo_uri = config["repo_uri"]
if sexpdata.car(archive_contents) != 1:
- raise SyncError('sync failed: ' + self.repo_uri + ' bad archive contents format')
+ raise SyncError('sync failed: ' + repo_uri + ' bad archive contents format')
- self.add_category('app-emacs')
+ pkg_db.add_category('app-emacs')
PKG_INFO = 2
PKG_NAME = 0
@@ -79,8 +75,8 @@ class ElpaDB(PackageDB):
'dependencies' : dependencies,
'depend' : depend,
'rdepend' : depend,
- 'homepage' : self.repo_uri,
- 'repo_uri' : self.repo_uri,
+ 'homepage' : repo_uri,
+ 'repo_uri' : repo_uri,
'realname' : realname,
#eclass entry
'eclasses' : ['g-elpa'],
@@ -89,7 +85,7 @@ class ElpaDB(PackageDB):
'name' : 'Jauhien Piatlicki'}],
'longdescription' : description
}
- self.add_package(pkg, properties)
+ pkg_db.add_package(pkg, properties)
def _s_get_package(self, name, version):