blob: c0324b022840320c076609ebd0b99d623889d44e [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""
This file contains curlish(), a CURL-ish method that downloads things without
needing CURL installed.
"""
import os
try:
from urllib2 import HTTPError, URLError, urlopen
except ImportError: # For Py3 compatibility
from urllib.error import HTTPError, URLError
from urllib.request import urlopen
def curlish(download_url, output_path):
"""Basically curl, but doesn't require the developer to have curl installed
locally. Returns True if succeeded at downloading file."""
if not output_path or not download_url:
print('need both output path and download URL to download, exiting.')
return False
print('downloading from "{}" to "{}"'.format(download_url, output_path))
script_contents = ''
try:
response = urlopen(download_url)
script_contents = response.read()
except HTTPError as e:
print(e.code)
print(e.read())
return False
except URLError as e:
print('Download failed. Reason: ', e.reason)
return False
directory = os.path.dirname(output_path)
if not os.path.exists(directory):
os.makedirs(directory)
script_file = open(output_path, 'w')
script_file.write(script_contents)
script_file.close()
return True