From 967af6f048b66a0b478f69cee86fd031acd833b6 Mon Sep 17 00:00:00 2001 From: Jack O'Connor Date: Thu, 30 Nov 2017 00:45:32 -0500 Subject: [PATCH] catch HTTPError and URLError in the curl plugin --- peru/resources/plugins/curl/curl_plugin.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/peru/resources/plugins/curl/curl_plugin.py b/peru/resources/plugins/curl/curl_plugin.py index 464b7293..e030ee1f 100755 --- a/peru/resources/plugins/curl/curl_plugin.py +++ b/peru/resources/plugins/curl/curl_plugin.py @@ -7,6 +7,7 @@ import stat import sys import tarfile +from urllib.error import HTTPError, URLError from urllib.parse import urlsplit import urllib.request import zipfile @@ -157,13 +158,18 @@ def main(): url = os.environ['PERU_MODULE_URL'] sha1 = os.environ['PERU_MODULE_SHA1'] command = os.environ['PERU_PLUGIN_COMMAND'] - if command == 'sync': - plugin_sync(url, sha1) - elif command == 'reup': - plugin_reup(url, sha1) - else: - raise RuntimeError('unknown command: ' + repr(command)) + try: + if command == 'sync': + plugin_sync(url, sha1) + elif command == 'reup': + plugin_reup(url, sha1) + else: + raise RuntimeError('unknown command: ' + repr(command)) + except (HTTPError, URLError) as e: + print("Error fetching", url) + print(e) + return 1 if __name__ == '__main__': - main() + sys.exit(main())