Agree. I was going to likely stop at listing the skins, enable/disable, and setting HTML_ROOT, but it would be nice to be able to edit anything under the skin's definition. There's really no way to do that with ansible or the like since keywords are not unique in weewx.conf - man I wish we had anything other than configobj format, but so it goes....
Anyway, at this point I'm using wunderfixer as a simple example just to get my feet wet, but this does work for listing (not changing) the skins and some info therein quickly....
IMPORTANT - the attached script does NOT hide/delete/obfuscate any usernames/keys/passwords/etc/ in the config_dict for a skin, so don't post output please. I'm just fiddling with things at this point to see what I can get at easily before seeing if I can add to it...
Quick example output for a few skins looks like the following. Obviously any real utility would have very different formatting.
-----------------
SeasonsReport
-----------------
enable = false
HTML_ROOT = public_html/Standard
config_dict = {'skin': 'Seasons', 'enable': 'false', 'HTML_ROOT': 'public_html/Standard', 'Units': {'Groups': {'group_altitude': 'foot', 'group_speed2': 'mile_per_hour2', 'group_pressure': 'mbar', 'group_rain': 'inch', 'group_rainrate': 'inch_per_hour', 'group_temperature': 'degree_F', 'group_degree_day': 'degree_F_day', 'group_speed': 'mile_per_hour'}}}
-----------------
MQTT
-----------------
enable = true
HTML_ROOT not specified
config_dict = {'server_url': 'mqtt://localhost:1883', 'topic': 'weather', 'binding': ['archive', 'loop'], 'aggregation': 'aggregate', 'log_success': 'false', 'log_failure': 'true', 'enable': 'true'}
-----------------
FTP
-----------------
enable not specified
HTML_ROOT not specified
config_dict = {'skin': 'Ftp', 'secure_ftp': 'False', 'port': '21', 'passive': '1'}