diff options
author | Ben Hutchings <ben@decadent.org.uk> | 2019-10-23 20:50:40 +0100 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2019-10-23 21:47:25 +0100 |
commit | f056dd541c76fe859166b931ca1a7252f3e3ff0c (patch) | |
tree | 158b917ac0ef512db1e6f474f4921d6dc707c97d /debian/lib/python/debian_linux/utils.py | |
parent | c8e5a878e8d78aec88872ee879196ff54adb4241 (diff) | |
download | kernel_replicant_linux-f056dd541c76fe859166b931ca1a7252f3e3ff0c.tar.gz kernel_replicant_linux-f056dd541c76fe859166b931ca1a7252f3e3ff0c.tar.bz2 kernel_replicant_linux-f056dd541c76fe859166b931ca1a7252f3e3ff0c.zip |
debian/lib/python/debian_linux/utils.py: Store file mode for templates
Diffstat (limited to 'debian/lib/python/debian_linux/utils.py')
-rw-r--r-- | debian/lib/python/debian_linux/utils.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/debian/lib/python/debian_linux/utils.py b/debian/lib/python/debian_linux/utils.py index 577ad319c55d..a43e986982b2 100644 --- a/debian/lib/python/debian_linux/utils.py +++ b/debian/lib/python/debian_linux/utils.py @@ -24,20 +24,31 @@ class Templates(object): filename = "%s/%s%s" % (dir, name, suffix) if os.path.exists(filename): with codecs.open(filename, 'r', 'utf-8') as f: + mode = os.stat(f.fileno()).st_mode if prefix == 'control': - return read_control(f) + return (read_control(f), mode) if prefix == 'tests-control': - return read_tests_control(f) - return f.read() + return (read_tests_control(f), mode) + return (f.read(), mode) - def get(self, key, default=None): - if key in self._cache: + def _get(self, key): + try: return self._cache[key] + except KeyError: + self._cache[key] = value = self._read(key) + return value - value = self._cache.setdefault(key, self._read(key)) + def get(self, key, default=None): + value = self._get(key) if value is None: return default - return value + return value[0] + + def get_mode(self, key): + value = self._get(key) + if value is None: + return None + return value[1] def read_control(f): |