https://github.com/Mylab6/PiBluetoothMidSetup
While I could of done this in Bash.
1. I don't really like Bash
2. Python is much easier. I did challenge myself to only use Python's built in libraries, but aside from being unable to use Yaml everything works.
I can imagine in some environments you might not have access to a Python interrupter though...