import org.xapek.yvesf.gradle.DownloadTask //chrome nightly build, one of the last with npapi final revision = '242519' version "34-r${revision}-1" task downloadChrome(type: DownloadTask) { source "http://gsdview.appspot.com/chromium-browser-continuous/Linux_x64/${revision}/chrome-linux.zip" sha256sum '7269d35b51fb16ebd11af92cdaba933fb73f8984949952888e30fab63dc78df8' } task unpackChrome(type: Copy) { from zipTree(downloadChrome.destFile) into file("${buildDir}/chromeLinuxUnpacked") eachFile { FileCopyDetails fcd -> // makes out of 06__ (_=don't care) 0655 // means rwx______ => rwxr-xr-x // or also r-x______ => r-xr-xr-x def mode = fcd.mode >> 6 fcd.mode = (mode << 6) | ((mode & 5) << 3) | mode & 5 } } unpackChrome.dependsOn(downloadChrome) task downloadGwtPlugin(type: DownloadTask) { source 'https://clients2.googleusercontent.com/crx/blobs/QgAAAC6zw0qH2DJtnXe8Z7rUJP3brylTnXsqSLH8EJLp' + 'Cpq2560pdQWMapnnCQsWYAxwMN2Pa2mZkH4aA9in1i3WTJKG0OUyFhe7lScnMNxhS1yjAMZSmuVxRW6MIEDyZkO8bJcfTSNy6GZA2g/' + 'extension_1_0_11357.crx' sha256sum '5716f39ca4dadb47f571f65f631a00854487971f42ad24aa3a36a99e78d33134' } task unpackGwtPlugin() { inputs.file(downloadGwtPlugin.destFile) ext.zip = file("${buildDir}/gwtPlugin.zip") ext.unpacked = file("${buildDir}/gwtPlugin") outputs.file(zip) outputs.dir(unpacked) } unpackGwtPlugin {}.dependsOn(downloadGwtPlugin) unpackGwtPlugin << { def fs = new FileOutputStream(zip) final bytes = inputs.files.first().readBytes() fs.write(bytes, 306, bytes.length - 306) fs.close() project.copy { from zipTree(zip) exclude '_metadata/**' into unpacked } } task downloadPdfPlugin(type: DownloadTask) { source 'https://clients2.googleusercontent.com/crx/blobs/QgAAAC6zw0qH2DJtnXe8Z7rUJP2i3UKpz0eTiopC2Qlk_FXWm-wYwG' + 'N2MPtjDt7LaoCfAScKzPva1bZi2q-9pYXZOibTl1nwFns1ZGCCvKGnyPQ0AMZSmuVlD6-IvZI2Yaw8Sj800M072EC85w/'+ 'extension_1_1_527.crx' sha256sum '' } task unpackPdfPlugin() { inputs.file(downloadPdfPlugin.destFile) ext.zip = file("${buildDir}/pdfPlugin.zip") ext.unpacked = file("${buildDir}/pdfPlugin") outputs.file(zip) outputs.dir(unpacked) } unpackPdfPlugin.dependsOn(downloadPdfPlugin) unpackPdfPlugin << { def fs = new FileOutputStream(zip) final bytes = inputs.files.first().readBytes() fs.write(bytes, 306, bytes.length - 306) fs.close() project.copy { from zipTree(zip) exclude '_metadata/**' into unpacked } } ospackage { into("/opt/${project.name}") from(unpackChrome.outputs.files) { exclude '**/en-US.pak' } from(fileTree(dir: 'resources/chrome-profile')) from('resources/rewrite-locale/output.pak') { into 'chrome-linux/locales' eachFile { FileCopyDetails fcd -> fcd.name = 'en-US.pak' } } from(unpackGwtPlugin.outputs.files) { into 'chrome-profile/Default/Extensions/hnmkfcicjochbbdloamlldphmhbbkenb' } from(unpackPdfPlugin.outputs.files) { into 'chrome-profile/Default/Extensions/oemmndcbldboiebfnladdacbdfmadadm' } } activator.bin['gwt-chrome-persistent'] = "/opt/${project.name}/bin/gwt-chrome-persistent" activator.bin['gwt-chrome-volatile'] = "/opt/${project.name}/bin/gwt-chrome-volatile"