kopia lustrzana https://github.com/mate-dev/mmrelaynode
59 wiersze
2.1 KiB
Python
59 wiersze
2.1 KiB
Python
import os
|
|
import yaml
|
|
|
|
# Read environment variables and construct the configuration dictionary
|
|
relay_config = {
|
|
"matrix": {
|
|
"homeserver": os.environ.get('MATRIX_HOMESERVER'),
|
|
"access_token": os.environ.get('MATRIX_ACCESS_TOKEN'),
|
|
"bot_user_id": os.environ.get('MATRIX_BOT_USER_ID')
|
|
},
|
|
"meshtastic": {
|
|
"connection_type": os.environ.get('MESHTASTIC_CONNECTION_TYPE'),
|
|
"serial_port": os.environ.get('MESHTASTIC_SERIAL_PORT'),
|
|
"host": os.environ.get('MESHTASTIC_HOST'),
|
|
"meshnet_name": os.environ.get('MESHTASTIC_MESHNET_NAME'),
|
|
"broadcast_enabled": os.environ.get('MESHTASTIC_BROADCAST_ENABLED') == 'true'
|
|
},
|
|
"logging": {
|
|
"level": os.environ.get('LOGGING_LEVEL')
|
|
}
|
|
}
|
|
|
|
# Construct the matrix_rooms list based on environment variables
|
|
matrix_rooms = []
|
|
for i in range(1, 9): # Loop for 8 rooms
|
|
room_id = os.environ.get(f'MATRIX_ROOMS_ID_{i}')
|
|
meshtastic_channel = os.environ.get(f'MATRIX_ROOMS_MESHTASTIC_CHANNEL_{i}')
|
|
if room_id and meshtastic_channel is not None:
|
|
matrix_rooms.append({
|
|
"id": room_id,
|
|
"meshtastic_channel": int(meshtastic_channel)
|
|
})
|
|
|
|
# Add the matrix_rooms list to the relay_config dictionary
|
|
relay_config["matrix_rooms"] = matrix_rooms
|
|
|
|
# Construct the plugins dictionary based on environment variables
|
|
plugins_config = {}
|
|
|
|
health_plugin_active = os.environ.get('HEALTH_PLUGIN_ACTIVE')
|
|
if health_plugin_active:
|
|
plugins_config["health"] = {"active": health_plugin_active.lower() == "true"}
|
|
|
|
map_plugin_active = os.environ.get('MAP_PLUGIN_ACTIVE')
|
|
if map_plugin_active:
|
|
plugins_config["map"] = {"active": map_plugin_active.lower() == "true"}
|
|
|
|
nodes_plugin_active = os.environ.get('NODES_PLUGIN_ACTIVE')
|
|
if nodes_plugin_active:
|
|
plugins_config["nodes"] = {"active": nodes_plugin_active.lower() == "true"}
|
|
|
|
# Add the plugins dictionary to the relay_config if it's not empty
|
|
if plugins_config:
|
|
relay_config["plugins"] = plugins_config
|
|
|
|
# Write the configuration to config.yaml
|
|
with open("config.yaml", "w") as f:
|
|
yaml.dump(relay_config, f)
|