diff --git a/agkyra/syncer/setup.py b/agkyra/syncer/setup.py index 33159a6c9931cb93bc3e1943a3367e66c3436ad8..d747e1a77cb806c76e8e8560c1b45a514a038391 100644 --- a/agkyra/syncer/setup.py +++ b/agkyra/syncer/setup.py @@ -146,6 +146,7 @@ class SyncerSettings(): self.get_db(initialize=True) self.mtime_lag = 0 + self.case_insensitive = False if not db_existed: self.set_localfs_enabled(True) @@ -156,6 +157,8 @@ class SyncerSettings(): else: if not local_root_path_exists: self.set_localfs_enabled(False) + else: + self.create_local_dirs() if not container_exists: self.set_pithos_enabled(False) @@ -178,6 +181,7 @@ class SyncerSettings(): self.create_dir(self.cache_stage_path) self.create_dir(self.cache_fetch_path) self.set_mtime_lag() + self.set_case_insensitive() def determine_mtime_lag(self): st = os.stat(self.cache_path) @@ -188,9 +192,24 @@ class SyncerSettings(): def set_mtime_lag(self): lag = self.determine_mtime_lag() - logger.debug("Setting mtime_lag = %s" % lag) + logger.info("Setting mtime_lag = %s" % lag) self.mtime_lag = lag + def determine_fs_case_insensitive(self): + path = self.cache_hide_path + altered = path.upper() if not path.isupper() else path.lower() + try: + os.stat(altered) + return True + except OSError: + return False + + def set_case_insensitive(self): + case_insensitive = self.determine_fs_case_insensitive() + case = "in" if case_insensitive else "" + logger.info("Filesystem is case-%ssensitive" % case) + self.case_insensitive = case_insensitive + def get_db(self, initialize=False): dbs = getattr(thread_local_data, "dbs", None) if dbs is not None: