mirror of
https://github.com/Kozea/Radicale.git
synced 2025-08-13 18:50:53 +00:00
Do not autocreate .props files for multifilesystem backend
This is required as we do not want .props files to be created for nodes, otherwise they'll stop being considered as nodes, which will break discovery of calendars. This fixes https://github.com/Kozea/Radicale/issues/208
This commit is contained in:
parent
a6884492a2
commit
873872d541
1 changed files with 19 additions and 0 deletions
|
@ -23,10 +23,12 @@ Multi files per calendar filesystem storage backend.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import json
|
||||||
import shutil
|
import shutil
|
||||||
import time
|
import time
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
from contextlib import contextmanager
|
||||||
from . import filesystem
|
from . import filesystem
|
||||||
from .. import ical
|
from .. import ical
|
||||||
|
|
||||||
|
@ -96,3 +98,20 @@ class Collection(filesystem.Collection):
|
||||||
os.path.getmtime(os.path.join(self._path, filename))
|
os.path.getmtime(os.path.join(self._path, filename))
|
||||||
for filename in os.listdir(self._path)] or [0])
|
for filename in os.listdir(self._path)] or [0])
|
||||||
return time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime(last))
|
return time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime(last))
|
||||||
|
|
||||||
|
@property
|
||||||
|
@contextmanager
|
||||||
|
def props(self):
|
||||||
|
# On enter
|
||||||
|
properties = {}
|
||||||
|
if os.path.exists(self._props_path):
|
||||||
|
with open(self._props_path) as prop_file:
|
||||||
|
properties.update(json.load(prop_file))
|
||||||
|
old_properties = properties.copy()
|
||||||
|
yield properties
|
||||||
|
# On exit
|
||||||
|
if os.path.exists(self._props_path):
|
||||||
|
self._create_dirs()
|
||||||
|
if old_properties != properties:
|
||||||
|
with open(self._props_path, "w") as prop_file:
|
||||||
|
json.dump(properties, prop_file)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue