import argparse import os parser = argparse.ArgumentParser( description='Store env vars into runnable .sh file with export statements', ) parser.add_argument( 'env_var_script_file', type=str, help='Path to variables-script.sh', ) args = parser.parse_args() wanted_variables = { 'OPENVPN_PROVIDER', 'DEBUG', 'ENABLE_UFW', 'PUID', 'PGID', 'DROP_DEFAULT_ROUTE', 'GLOBAL_APPLY_PERMISSIONS', 'LOG_TO_STDOUT', 'DISABLE_PORT_UPDATER', 'TZ', 'PEER_DNS', 'PEER_DNS_PIN_ROUTES', 'CONFIG' } variables_to_persist = {} for env_var in os.environ: if env_var.startswith('TRANSMISSION_'): variables_to_persist[env_var] = os.environ.get(env_var) elif env_var.startswith('TR_'): variables_to_persist[env_var] = os.environ.get(env_var) elif env_var.startswith('WEBPROXY_'): variables_to_persist[env_var] = os.environ.get(env_var) elif env_var in wanted_variables: variables_to_persist[env_var] = os.environ.get(env_var) # Dump resulting settings to file with open(args.env_var_script_file, 'w') as script_file: script_file.write("#!/bin/bash\n") for var_name, var_value in variables_to_persist.items(): script_file.write( 'export {env_var}="{env_var_value}"\n'.format( env_var=var_name, env_var_value=var_value, ), )