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 | |
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
-rw-r--r-- | debian/changelog | 1 | ||||
-rw-r--r-- | debian/lib/python/debian_linux/utils.py | 25 |
2 files changed, 19 insertions, 7 deletions
diff --git a/debian/changelog b/debian/changelog index e3c4aaae89aa..005648c539cd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,7 @@ linux (5.3.7-2) UNRELEASED; urgency=medium * Add maint scripts to meta-packages to convert doc directories to symlinks (Closes: #942861) * debian/lib/python/debian_linux/utils.py: Use 'with' to manage file handles + * debian/lib/python/debian_linux/utils.py: Store file mode for templates -- Ben Hutchings <ben@decadent.org.uk> Wed, 23 Oct 2019 18:32:15 +0100 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): |