diff --git a/configs/__init__.py b/configs/__init__.py index 95b8fcb..73b94a8 100644 --- a/configs/__init__.py +++ b/configs/__init__.py @@ -2,6 +2,6 @@ import logging __author__ = "Adam Pippin" __email__ = "hello@adampippin.ca" -__version__ = "0.0.4" +__version__ = "0.0.6" logging.getLogger("configs").addHandler(logging.NullHandler()) diff --git a/configs/transform/env.py b/configs/transform/env.py index 562a4a3..7bf394a 100644 --- a/configs/transform/env.py +++ b/configs/transform/env.py @@ -16,7 +16,7 @@ class Env: if value is None: out.append('# ' + k + '=null') else: - out.append(k + '="' + value + '"') + out.append(k + '="' + str(value) + '"') return os.linesep.join(out) def _decode(self, value, config, vault): @@ -30,8 +30,19 @@ class Env: return vault.resolve(config, self._decode(value['vault'], config, vault)) elif 'file' in value: temp = tempfile.NamedTemporaryFile(delete=False, prefix='configs') - temp.write(self._decode(value['file'], config, vault).encode('utf-8')) + if type(value['file']) is list: + if len(value['file']) >= 1: + file_contents = self._decode(value['file'][0], config, vault).encode('utf-8') + if len(value['file']) >= 2: + file_permissions = self._decode(value['file'][1], config, vault) + else: + file_permissions = 0o666 + else: + file_contents = self._decode(value['file'], config, vault).encode('utf-8') + file_permissions = 0o666 + temp.write(file_contents) temp.close() + os.chmod(temp.name, file_permissions) return temp.name elif 'base64' in value: return base64.b64decode(self._decode(value['base64'], config, vault)).decode('utf-8')