From 4a5cbf2d358bc127869f76c6f0afac0bd25b60a6 Mon Sep 17 00:00:00 2001 From: Howard Wang Date: Wed, 1 Mar 2017 16:38:17 -0500 Subject: [PATCH] Ability to set "privileged" flag (boolean) from environment var Signed-off-by: Hao Wang --- compose/config/interpolation.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/compose/config/interpolation.py b/compose/config/interpolation.py index 1b270b9eab6..b6282317dd6 100644 --- a/compose/config/interpolation.py +++ b/compose/config/interpolation.py @@ -47,7 +47,7 @@ def process_item(name, config_dict): def interpolate_value(name, config_key, value, section, interpolator): try: - return recursive_interpolate(value, interpolator) + return recursive_interpolate(config_key, value, interpolator) except InvalidInterpolation as e: raise ConfigurationError( 'Invalid interpolation format for "{config_key}" option ' @@ -58,16 +58,20 @@ def interpolate_value(name, config_key, value, section, interpolator): string=e.string)) -def recursive_interpolate(obj, interpolator): +def recursive_interpolate(config_key, obj, interpolator): if isinstance(obj, six.string_types): + if config_key == "privileged" and interpolator.interpolate(obj).lower() == 'true': + return True + elif config_key == "privileged" and interpolator.interpolate(obj).lower() == 'false': + return False return interpolator.interpolate(obj) if isinstance(obj, dict): return dict( - (key, recursive_interpolate(val, interpolator)) + (key, recursive_interpolate('', val, interpolator)) for (key, val) in obj.items() ) if isinstance(obj, list): - return [recursive_interpolate(val, interpolator) for val in obj] + return [recursive_interpolate('', val, interpolator) for val in obj] return obj