From ff6af8c706f93b0e94246d8a5b5be404a34e9db2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Thu, 20 Sep 2018 01:42:39 +0200 Subject: [PATCH] component/chromedriver: new component --- component/chromedriver/buildout.cfg | 74 +++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 component/chromedriver/buildout.cfg diff --git a/component/chromedriver/buildout.cfg b/component/chromedriver/buildout.cfg new file mode 100644 index 000000000..733aa7449 --- /dev/null +++ b/component/chromedriver/buildout.cfg @@ -0,0 +1,74 @@ +# ChromeDriver - Webdriver for Chrome +# http://chromedriver.chromium.org/ +# This is a binary download with wrapper scripts. + +[buildout] +extends = + ../chromium/buildout.cfg + ../nss/buildout.cfg + ../nspr/buildout.cfg + +parts = + chromedriver-wrapper + + + +[chromedriver-wrapper-2.41] +<= chromedriver-wrapper +wrapper-name = chromedriver-2.41 +part = ${chromedriver-2.41:location} + +[chromedriver-wrapper] +# generate a wrapper named ${:wrapper-name} setting $LD_LIBRARY_PATH +# to run chromedriver installed from ${:part} +wrapper-name = chromedriver +part = ${chromedriver:location} + +recipe = slapos.recipe.build +location = ${buildout:bin-directory}/${:wrapper-name} +script = + chromedriver = self.options['part'] + part = self.buildout[os.path.basename(chromedriver)] + with open(%(location)r, 'w') as f: + f.write("""#!/bin/sh -e + cd {} + export LD_LIBRARY_PATH=$PWD:{} + export PATH={}:$PATH + exec ./chromedriver "$@" + """.format( + chromedriver, + ':'.join(part['library'].split()), + ':'.join(part['path'].split()), + )) + os.fchmod(f.fileno(), 0o755) + + +[chromedriver] +<= chromedriver-2.41 + +[chromedriver-2.41] +<= chromedriver-download +version = 2.41 +# Supports Chrome v67-69 +md5sum-x86_64 = fbd8b9561575054e0e7e9cc53b680a70 + + +[chromedriver-download] +# Installs chromedriver ${version}. +# This chromedriver is not usable directly, it needs a wrapper. +version = +md5sum-x86_64 = + +recipe = slapos.recipe.build +x86-64 = https://chromedriver.storage.googleapis.com/${:version}/chromedriver_linux64.zip ${:md5sum-x86_64} +library = + ${nss:location}/lib + ${nspr:location}/lib +path = + +script = + url, md5sum = self.options[guessPlatform()].split() + extract_dir = self.extract(self.download(url, md5sum)) + os.mkdir(%(location)r) + shutil.copy(extract_dir + '/chromedriver', %(location)r) + -- 2.30.9