Version 1
[yaffs-website] / vendor / drush / drush / commands / core / drupal / cache.inc
diff --git a/vendor/drush/drush/commands/core/drupal/cache.inc b/vendor/drush/drush/commands/core/drupal/cache.inc
new file mode 100644 (file)
index 0000000..a980d62
--- /dev/null
@@ -0,0 +1,101 @@
+<?php
+/**
+ * @file
+ *   Engine for the cache commands.
+ */
+
+function _drush_cache_command_get($cid, $bin) {
+  if (is_null($bin)) {
+    $bin = _drush_cache_bin_default();
+  }
+  return cache_get($cid, $bin);
+}
+
+/**
+ * The default bin.
+ *
+ * @return string
+ */
+function _drush_cache_bin_default() {
+  return 'cache';
+}
+
+function _drush_cache_command_set($cid, $data, $bin, $expire, $tags) {
+  // Convert the "expire" argument to a valid value for Drupal's cache_set().
+  if (is_null($bin)) {
+    $bin = _drush_cache_bin_default();
+  }
+  if ($expire == 'CACHE_TEMPORARY') {
+    $expire = CACHE_TEMPORARY;
+  }
+  if (!isset($expire) || $expire == 'CACHE_PERMANENT') {
+    $expire = CACHE_PERMANENT;
+  }
+
+  // D6/D7 don't natively support cache tags.
+  return cache_set($cid, $data, $bin, $expire);
+}
+
+function _drush_cache_clear_types($include_bootstrapped_types) {
+  $types = array(
+    'drush' => 'drush_cache_clear_drush',
+    'all' => 'drush_cache_clear_both',
+  );
+  if ($include_bootstrapped_types) {
+    $types += array(
+      'theme-registry' => 'drush_cache_clear_theme_registry',
+      'menu' => 'menu_rebuild',
+      'css-js' => 'drush_cache_clear_css_js',
+      'block' => 'drush_cache_clear_block',
+      'module-list' => 'drush_get_modules',
+      'theme-list' => 'drush_get_themes',
+    );
+  }
+  $drupal_version = drush_drupal_major_version();
+
+  if ($drupal_version >= 7) {
+    $types['registry'] = 'registry_update';
+  }
+  elseif ($drupal_version == 6 && function_exists('module_exists') && module_exists('autoload')) {
+    // TODO: move this to autoload module.
+    $types['registry'] = 'autoload_registry_update';
+  }
+
+  return $types;
+}
+
+function drush_cache_clear_theme_registry() {
+  if (drush_drupal_major_version() >= 7) {
+    drupal_theme_rebuild();
+  }
+  else {
+    cache_clear_all('theme_registry', 'cache', TRUE);
+  }
+}
+
+function drush_cache_clear_menu() {
+  return menu_router_rebuild();
+}
+
+function drush_cache_clear_css_js() {
+  _drupal_flush_css_js();
+  drupal_clear_css_cache();
+  drupal_clear_js_cache();
+}
+
+/**
+ * Clear the cache of the block output.
+ */
+function drush_cache_clear_block() {
+  cache_clear_all(NULL, 'cache_block');
+}
+
+/**
+ * Clear caches internal to Drush core and Drupal.
+ */
+function drush_cache_clear_both() {
+  drush_cache_clear_drush();
+  if (drush_has_boostrapped(DRUSH_BOOTSTRAP_DRUPAL_FULL)) {
+    drupal_flush_all_caches();
+  }
+}