aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIikka Eklund <iikka.eklund@qt.io>2019-06-12 14:08:05 +0300
committerEike Ziller <eike.ziller@qt.io>2019-06-12 12:29:28 +0000
commit8b55bfe7394a982ea70c8419fe90ca60cc1f3c06 (patch)
tree9236a64e069a54f2df729a333f8399fd2a824d48
parent17b61aff19ea997c30f8097c2a1b50fbc7299022 (diff)
Fix QtCreator documentation package build
As nowadays the CI/ReleaseExport creates doc package archives per Qt module we need to collect the index files from each doc archive. This patch scans all doc .zip files from the given url, downloads & extracts those and finally creates the final documentation archive like before. Change-Id: Ie7e8c59626722504b7a6d3c1d46abd1f8563216d Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r--packaging-tools/build_wrapper.py47
1 files changed, 36 insertions, 11 deletions
diff --git a/packaging-tools/build_wrapper.py b/packaging-tools/build_wrapper.py
index aa0894cfd..72aeee0d5 100644
--- a/packaging-tools/build_wrapper.py
+++ b/packaging-tools/build_wrapper.py
@@ -45,6 +45,7 @@ import shutil
import platform
import urllib
import urlparse
+from urllib2 import urlopen
from time import gmtime, strftime
import bld_ifw_tools
from bld_ifw_tools import IfwOptions
@@ -330,24 +331,48 @@ def generate_bin_target_dictionary():
###############################
# Download Qt documentation, extract and repackage with toplevel dir renamed
###############################
+def move_files_to_parent_dir(source):
+ destination = os.path.abspath(os.path.join(source, os.pardir))
+ print("Moving files from: [{0}] to: [{1}]".format(source, destination))
+ assert os.path.isdir(source), "The given source is not a directory: %s" % source
+ assert os.path.isdir(destination), "The destination is not a directory: %s" % destination
+ files_list = os.listdir(source)
+ for file in files_list:
+ shutil.move(os.path.join(source, file), destination)
+ os.rmdir(source)
+
+
def create_download_documentation_task(base_url, download_path):
- url = base_url + '/doc/qt-everywhere-documentation.zip'
- download_filepath = os.path.join(download_path, 'qt-everywhere-documentation.zip')
- extract_path = os.path.join(download_path, 'qt-everywhere-documentation')
+ urlpath = urlopen(base_url + "/doc")
+ string = urlpath.read().decode('utf-8')
+ pattern = re.compile('[0-9a-zA-Z-]*.zip')
+
+ file_list = pattern.findall(string)
+ file_list = list(dict.fromkeys(file_list))
+
+ extract_path = os.path.join(download_path, 'tqtc-qt5-documentation')
target_filepath = os.path.join(download_path, 'qt-everywhere-documentation.7z')
+ def create_remove_one_dir_level_function(path):
+ return lambda: move_files_to_parent_dir(path)
+
def repackage():
- source_path = os.path.join(extract_path, 'doc')
- os.rename(os.path.join(extract_path, 'qt-everywhere-documentation'),
- source_path)
+ source_path = extract_path
+ dest_doc_path = os.path.join(download_path, 'doc')
+ os.rename(source_path, dest_doc_path)
# limit compression to 2 cores to limit memory footprint for 32bit Windows
- bld_utils.runCommand(['7z', 'a', '-mmt2', target_filepath, source_path],
- extract_path, None)
+ bld_utils.runCommand(['7z', 'a', '-mmt2', target_filepath, dest_doc_path],
+ dest_doc_path, None)
+
+ download_task = Task("downloading documentation from {0}".format(base_url))
+ for item in file_list:
+ url = base_url + '/doc/' + item
+ download_filepath = os.path.join(download_path, item)
+ download_task.addFunction(bld_utils.download, url, download_filepath)
+ download_task.addFunction(bldinstallercommon.create_extract_function(download_filepath, extract_path, None))
+ download_task.addFunction(create_remove_one_dir_level_function(os.path.join(extract_path, item.rstrip(".zip"))))
- download_task = Task("downloading documentation from {0}".format(url))
- download_task.addFunction(bld_utils.download, url, download_filepath)
repackage_task = Task("repackaging documentation as {0}".format(target_filepath))
- repackage_task.addFunction(bldinstallercommon.create_extract_function(download_filepath, extract_path, None))
repackage_task.addFunction(repackage)
return (download_task, repackage_task, bld_utils.file_url(target_filepath))