print_pdf_wkhtmltopdf.drush.inc 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. /**
  3. * @file
  4. * drush integration for print_pdf_wkhtmltopdf module PDF libraries download.
  5. */
  6. /**
  7. * The PDF project download URL
  8. */
  9. // wkhtmltopdf is a binary, requiring a different download for each platform
  10. define('WKHTMLTOPDF_AMD64_DOWNLOAD_URI', 'http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz');
  11. define('WKHTMLTOPDF_I386_DOWNLOAD_URI', 'http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/wkhtmltox-linux-i386_0.12.0-03c001d.tar.xz');
  12. define('WKHTMLTOPDF_WIN64_DOWNLOAD_URI', 'http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/wkhtmltox-win64_0.12.0-03c001d.exe');
  13. define('WKHTMLTOPDF_WIN_DOWNLOAD_URI', 'http://downloads.sourceforge.net/project/wkhtmltopdf/0.12.0/wkhtmltox-win32_0.12.0-03c001d.exe');
  14. define('WKHTMLTOPDF_OSX_DOWNLOAD_URI', 'http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-OSX-0.10.0_rc2-static.tar.bz2');
  15. /**
  16. * Implements hook_drush_command().
  17. */
  18. function print_pdf_wkhtmltopdf_drush_pdf_libs_alter(&$pdf_libs) {
  19. $pdf_libs['wkhtmltopdf'] = array(
  20. 'callback' => '_print_pdf_wkhtmltopdf_drush_download_url',
  21. );
  22. }
  23. /**
  24. * Discover the correct URL of the package to download.
  25. *
  26. * @return string
  27. * URL of the file to download, FALSE if not known
  28. */
  29. function _print_pdf_wkhtmltopdf_drush_download_url() {
  30. $ret = FALSE;
  31. switch (drupal_substr(php_uname('s'), 0, 3)) {
  32. case 'Lin':
  33. $ret = (php_uname('m') == 'x86_64') ? WKHTMLTOPDF_AMD64_DOWNLOAD_URI : WKHTMLTOPDF_I386_DOWNLOAD_URI;
  34. break;
  35. case 'Win':
  36. $ret = WKHTMLTOPDF_WIN_DOWNLOAD_URI;
  37. break;
  38. case 'Dar':
  39. $ret = WKHTMLTOPDF_OSX_DOWNLOAD_URI;
  40. break;
  41. default:
  42. drush_log(dt('wkhtmltopdf is not supported in this system, please choose another library.'), 'error');
  43. break;
  44. }
  45. return $ret;
  46. }