blob: 3ff5eb6e815ac2b087396e11ea7fb95f00f2633a [file] [log] [blame]
# Copyright (c) 2022 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0
import os
import requests
import sys
from west import log
from fetchers.core import ZephyrBlobFetcher
class HTTPFetcher(ZephyrBlobFetcher):
@classmethod
def schemes(cls):
return ['http', 'https']
def fetch(self, url, path):
log.dbg(f'HTTPFetcher fetching {url} to {path}')
try:
resp = requests.get(url)
resp.raise_for_status() # Raises an HTTPError for bad status codes (4xx or 5xx)
except requests.exceptions.HTTPError as e:
log.err(f'HTTP error occurred: {e}')
sys.exit(os.EX_NOHOST)
except requests.exceptions.RequestException as e:
log.err(f'An error occurred: {e}')
sys.exit(os.EX_DATAERR)
with open(path, "wb") as f:
f.write(resp.content)