catch and display all errors and fix linux compatibility

Catch all error to help troubleshooting when they do happen.

Also there were a couple of issues on Linux. `shell=True` in`process = subprocess.Popen` was causing the git commands to fail. And, as explained in the comment, the ssl module is not available, so we use curl as a workaround.