|
|
|
@ -362,12 +362,7 @@ class ContentsStorage(ContentsFormat):
|
|
|
|
|
f.write("{CATEGORY}/{PN}:{SLOTONLY} ".format(**data['package']))
|
|
|
|
|
self._write_info(f, fn, data)
|
|
|
|
|
|
|
|
|
|
def restore(self, prefix='/'):
|
|
|
|
|
"""
|
|
|
|
|
Восстановить записи о файлах принадлежащих пакету.
|
|
|
|
|
:param prefix:
|
|
|
|
|
:return:
|
|
|
|
|
"""
|
|
|
|
|
def _get_packages(self, prefix='/'):
|
|
|
|
|
for package, objinfos in groupby(
|
|
|
|
|
sorted(readLinesFile(self.storage_file)),
|
|
|
|
|
lambda x: x.partition(" ")[0]):
|
|
|
|
@ -377,10 +372,19 @@ class ContentsStorage(ContentsFormat):
|
|
|
|
|
if package:
|
|
|
|
|
package = package[-1]
|
|
|
|
|
content = PkgContents(str(package), prefix)
|
|
|
|
|
for infoline in (x.strip().partition(' ')[2] for x in objinfos):
|
|
|
|
|
fn, data = self._identifyLine(infoline)
|
|
|
|
|
if path.exists(fn):
|
|
|
|
|
content.content[fn] = data
|
|
|
|
|
content.addDir(path.dirname(fn))
|
|
|
|
|
os.utime(fn, (int(data['mtime']), int(data['mtime'])))
|
|
|
|
|
content.writeContents()
|
|
|
|
|
yield content, objinfos
|
|
|
|
|
|
|
|
|
|
def restore(self, prefix='/'):
|
|
|
|
|
"""
|
|
|
|
|
Восстановить записи о файлах принадлежащих пакету.
|
|
|
|
|
:param prefix:
|
|
|
|
|
:return:
|
|
|
|
|
"""
|
|
|
|
|
for content, objinfos in self._get_packages(prefix):
|
|
|
|
|
for infoline in (x.strip().partition(' ')[2] for x in objinfos):
|
|
|
|
|
fn, data = self._identifyLine(infoline)
|
|
|
|
|
if path.exists(fn):
|
|
|
|
|
content.content[fn] = data
|
|
|
|
|
content.addDir(path.dirname(fn))
|
|
|
|
|
os.utime(fn, (int(data['mtime']), int(data['mtime'])))
|
|
|
|
|
content.writeContents()
|
|
|
|
|