On Sun, May 15, 2016 at 10:35:31PM +0000, Jelmer Vernooij wrote: > From: Jelmer Vernooij <jel...@jelmer.uk> > > --- > calypso/webdav.py | 29 +++++++++++++++++++++-------- > 1 file changed, 21 insertions(+), 8 deletions(-) > > diff --git a/calypso/webdav.py b/calypso/webdav.py > index e198a14..4b52d67 100644 > --- a/calypso/webdav.py > +++ b/calypso/webdav.py > @@ -265,6 +265,14 @@ class Collection(object): > self.log.exception("Insert %s failed", path) > return > > + def insert_directory(self, path): > + try: > + item = Collection(path) > + self.my_items.append(item) > + except Exception, ex: > + self.log.exception("Insert %s failed", path) > + return > + > def remove_file(self, path): > old_items=[] > for old_item in self.my_items: > @@ -311,6 +319,8 @@ class Collection(object): > for filename in filenames: > if filename == METADATA_FILENAME: > continue > + if filename == '.git': > + continue > filepath = os.path.join(self.path, filename) > for file in self.files: > if filepath == file.path: > @@ -320,25 +330,28 @@ class Collection(object): > self.scan_file(filepath) > break > else: > - if os.path.isdir(filepath): > - self.log.debug("Ignoring directory %s in scan_dir", > filepath) > - else: > - self.log.debug("New %s", filepath) > - newfiles.append(Pathtime(filepath)) > + self.log.debug("New %s", filepath) > + newfiles.append(Pathtime(filepath)) > + if not os.path.isdir(filepath): > self.insert_file(filepath) > + else: > + self.insert_directory("/".join([self.urlpath, filename])) > for file in self.files: > if not file.path in filenames: > self.log.debug("Removed %s", file.path) > self.remove_file(file.path) > h = hashlib.sha1() > for item in self.my_items: > - h.update(item.etag) > + if getattr(item, 'etag', None): > + h.update(item.etag) > + else: > + h.update(item.ctag) > self._ctag = '%d-' % self.mtime + h.hexdigest() > self.files = newfiles > - > + > def __init__(self, path): > """Initialize the collection with ``cal`` and ``user`` parameters.""" > - > + > self.log = logging.getLogger(__name__) > self.encoding = "utf-8" > self.urlpath = path > -- > 2.8.1
A testcase would help to review this. The target is to allow subcollections as subfolders? If so LGTM but it would be great to have a testcase for these kind of tings so we don't break it in the future (and it gets simpler to review). Cheers, -- Guido _______________________________________________ Calypso mailing list Calypso@keithp.com http://keithp.com/mailman/listinfo/calypso