diff --git a/docs/en/conf.py b/docs/en/conf.py index 3747c9fc16..0713b97f1d 100644 --- a/docs/en/conf.py +++ b/docs/en/conf.py @@ -10,7 +10,7 @@ import sys import os sys.path.insert(0, os.path.abspath('..')) from conf_common import * # noqa: F401, F403 - need to make available everything from common -from local_util import download_file # noqa: E402 - need to import from common folder +from local_util import download_file_if_missing # noqa: E402 - need to import from common folder # General information about the project. project = u'ESP-IDF Programming Guide' @@ -22,7 +22,7 @@ language = 'en' # Download font file that is stored on a separate server to save on esp-idf repository size. print("Downloading font file") -download_file('https://dl.espressif.com/dl/esp-idf/docs/_static/DejaVuSans.ttf', '../_static') +download_file_if_missing('https://dl.espressif.com/dl/esp-idf/docs/_static/DejaVuSans.ttf', '../_static') # Set up font for blockdiag, nwdiag, rackdiag and packetdiag blockdiag_fontpath = '../_static/DejaVuSans.ttf' diff --git a/docs/local_util.py b/docs/local_util.py index 2a89592cef..d0fa1ce9c6 100644 --- a/docs/local_util.py +++ b/docs/local_util.py @@ -18,7 +18,14 @@ from __future__ import unicode_literals from io import open import os import shutil -import urllib + +try: + import urllib.request + _urlretrieve = urllib.request.urlretrieve +except ImportError: + # Python 2 fallback + import urllib + _urlretrieve = urllib.urlretrieve def run_cmd_get_output(cmd): @@ -58,9 +65,13 @@ def copy_if_modified(src_path, dst_path): copy_file_if_modified(src_file_path, dst_file_path) -def download_file(from_url, to_path): - tmp_file, header = urllib.urlretrieve(from_url) - filename = os.path.basename(from_url) - with open(to_path + "/" + filename, 'wb') as fobj: - with open(tmp_file, 'rb') as tmp: - fobj.write(tmp.read()) +def download_file_if_missing(from_url, to_path): + filename_with_path = to_path + "/" + os.path.basename(from_url) + exists = os.path.isfile(filename_with_path) + if exists: + print("The file '%s' already exists" % (filename_with_path)) + else: + tmp_file, header = _urlretrieve(from_url) + with open(filename_with_path, 'wb') as fobj: + with open(tmp_file, 'rb') as tmp: + fobj.write(tmp.read()) diff --git a/docs/zh_CN/conf.py b/docs/zh_CN/conf.py index 0ebcc75dd1..0f7c85199f 100644 --- a/docs/zh_CN/conf.py +++ b/docs/zh_CN/conf.py @@ -10,7 +10,7 @@ import sys import os sys.path.insert(0, os.path.abspath('..')) from conf_common import * # noqa: F401, F403 - need to make available everything from common -from local_util import download_file # noqa: E402 - need to import from common folder +from local_util import download_file_if_missing # noqa: E402 - need to import from common folder # General information about the project. project = u'ESP-IDF 编程指南' @@ -22,7 +22,7 @@ language = 'zh_CN' # Download font file that is stored on a separate server to save on esp-idf repository size. print("Downloading font file") -download_file('https://dl.espressif.com/dl/esp-idf/docs/_static/NotoSansSC-Regular.otf', '../_static') +download_file_if_missing('https://dl.espressif.com/dl/esp-idf/docs/_static/NotoSansSC-Regular.otf', '../_static') # Set up font for blockdiag, nwdiag, rackdiag and packetdiag blockdiag_fontpath = '../_static/NotoSansSC-Regular.otf'