her pisi-index.xml ait olduğu depo adı ile aynı isme sahip bir dizine koyuluyor. Nasıl çalıştığını az önce yazmıştım.
This commit is contained in:
+8
-5
@@ -18,18 +18,21 @@ class Index(XmlFile):
|
|||||||
self.sources = []
|
self.sources = []
|
||||||
self.packages = []
|
self.packages = []
|
||||||
|
|
||||||
def read(self, filename):
|
def read(self, filename, repo = None):
|
||||||
"""Read PSPEC file"""
|
"""Read PSPEC file"""
|
||||||
|
|
||||||
self.filepath = filename
|
self.filepath = filename
|
||||||
url = PUrl(filename)
|
url = PUrl(filename)
|
||||||
if url.isRemoteFile():
|
if url.isRemoteFile():
|
||||||
from os.path import join
|
import os
|
||||||
from fetcher import fetchUrl
|
from fetcher import fetchUrl
|
||||||
# TODO: farklı depoların index dosyalarını handle edebilmek gerekiyor.
|
|
||||||
dest = config.index_dir()
|
dest = os.path.join(config.index_dir(), repo)
|
||||||
|
if not os.path.exists(dest):
|
||||||
|
os.makedirs(dest)
|
||||||
fetchUrl(url, dest, ui.Progress)
|
fetchUrl(url, dest, ui.Progress)
|
||||||
self.filepath = join(dest, url.filename())
|
|
||||||
|
self.filepath = os.path.join(dest, url.filename())
|
||||||
|
|
||||||
self.readxml(self.filepath)
|
self.readxml(self.filepath)
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -73,16 +73,16 @@ def index(repo_dir = '.'):
|
|||||||
index.write(const.pisi_index)
|
index.write(const.pisi_index)
|
||||||
ui.info('* Index file written\n')
|
ui.info('* Index file written\n')
|
||||||
|
|
||||||
def updatedb(indexfile = None):
|
def updatedb(indexfile = None, repo = "default"):
|
||||||
from index import Index
|
from index import Index
|
||||||
|
|
||||||
if not indexfile:
|
if not indexfile:
|
||||||
repos_path = config.values.repos.default
|
repos_path = config.values.repos[repo]
|
||||||
indexfile = os.path.join(repos_path, const.pisi_index)
|
indexfile = os.path.join(repos_path, const.pisi_index)
|
||||||
|
|
||||||
ui.info('* Updating DB from index file: %s\n' % indexfile)
|
ui.info('* Updating DB from index file: %s\n' % indexfile)
|
||||||
index = Index()
|
index = Index()
|
||||||
index.read(indexfile)
|
index.read(indexfile, repo)
|
||||||
index.update_db()
|
index.update_db()
|
||||||
ui.info('* Package db updated.\n')
|
ui.info('* Package db updated.\n')
|
||||||
|
|
||||||
|
|||||||
+6
-5
@@ -258,13 +258,14 @@ def package_name(name, version, release):
|
|||||||
|
|
||||||
# TODO: Currently we're supporting for only one repository. We'll
|
# TODO: Currently we're supporting for only one repository. We'll
|
||||||
# extend this functionality soon.
|
# extend this functionality soon.
|
||||||
def repo_index(repo = config.values.repos.default):
|
def repo_index(reponame = "default"):
|
||||||
"return a par (url, IndexObj) for the given repository"
|
"return a par (url, IndexObj) for the given repository"
|
||||||
from index import Index
|
from index import Index
|
||||||
|
|
||||||
|
repourl = config.values.repos[reponame]
|
||||||
|
|
||||||
index = Index()
|
index = Index()
|
||||||
# buraya repo adını da ekleyeceğiz.
|
indexpath = os.path.join(config.index_dir(),
|
||||||
# path/to/repos_dir/default/pisi-index.xml gibi...
|
reponame, const.pisi_index)
|
||||||
indexpath = os.path.join(config.index_dir(), const.pisi_index)
|
|
||||||
index.read(indexpath)
|
index.read(indexpath)
|
||||||
return (repo, index)
|
return (repourl, index)
|
||||||
|
|||||||
Reference in New Issue
Block a user