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