print_pdf_wkhtmltopdf.drush.inc 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. /**
  3. * @file
  4. * Provides drush integration for print_pdf_wkhtmltopdf module.
  5. */
  6. /**
  7. * The PDF project download URL.
  8. */
  9. // Since wkhtmltopdf is a binary, a different URL is required for each platform.
  10. define('WKHTMLTOPDF_LNX64_DOWNLOAD_URI', 'https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz');
  11. define('WKHTMLTOPDF_LNX32_DOWNLOAD_URI', 'https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-i386.tar.xz');
  12. define('WKHTMLTOPDF_WIN64_DOWNLOAD_URI', 'https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.msvc2015-win64.exe');
  13. define('WKHTMLTOPDF_WIN32_DOWNLOAD_URI', 'https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.msvc2015-win32.exe');
  14. define('WKHTMLTOPDF_OSX64_DOWNLOAD_URI', 'https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.macos-cocoa.pkg');
  15. define('WKHTMLTOPDF_OSX32_DOWNLOAD_URI', 'https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.macos-carbon.pkg');
  16. /**
  17. * Implements hook_drush_command().
  18. */
  19. function print_pdf_wkhtmltopdf_drush_pdf_libs_alter(&$pdf_libs) {
  20. $pdf_libs['wkhtmltopdf'] = array(
  21. 'callback' => '_print_pdf_wkhtmltopdf_drush_download_url',
  22. );
  23. }
  24. /**
  25. * Discover the correct URL of the package to download.
  26. *
  27. * @return string
  28. * URL of the file to download, FALSE if not known
  29. */
  30. function _print_pdf_wkhtmltopdf_drush_download_url() {
  31. $ret = FALSE;
  32. switch (drupal_substr(php_uname('s'), 0, 3)) {
  33. case 'Lin':
  34. drush_log(dt('Please note that generic Linux builds are no longer being generated. See https://wkhtmltopdf.org/downloads.html.'), 'warning');
  35. $ret = (php_uname('m') == 'x86_64') ? WKHTMLTOPDF_LNX64_DOWNLOAD_URI : WKHTMLTOPDF_LNX32_DOWNLOAD_URI;
  36. break;
  37. case 'Win':
  38. $ret = WKHTMLTOPDF_WIN32_DOWNLOAD_URI;
  39. break;
  40. case 'Dar':
  41. $ret = (php_uname('m') == 'x86_64') ? WKHTMLTOPDF_OSX64_DOWNLOAD_URI : WKHTMLTOPDF_OSX32_DOWNLOAD_URI;
  42. break;
  43. default:
  44. drush_log(dt('wkhtmltopdf is not supported in this system, please choose another library.'), 'error');
  45. break;
  46. }
  47. return $ret;
  48. }