? drush_pm_mkdir.patch
Index: drush_pm.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/drush/drush_pm/drush_pm.module,v
retrieving revision 1.18
diff -u -p -r1.18 drush_pm.module
--- drush_pm.module	22 Mar 2008 02:49:04 -0000	1.18
+++ drush_pm.module	29 Mar 2008 22:15:00 -0000
@@ -250,6 +250,9 @@ function drush_pm_update() {  
   	drush_die(t("The $package_handler package handler does not handle updates."));
   }
   
+  // Save the date to be used in the backup directory's path name.
+  $date = date('YmdHis');
+
   // Now we start the actual updating.
   foreach($updateable as $project) {
     drush_verbose(t('Starting to update !project ...', array('!project' => $project['title'])));
@@ -262,9 +265,12 @@ function drush_pm_update() {  
       $svn = TRUE;
     }
     else {
-      $date = date('Ymd');
-      $backup_dir = DRUSH_DRUPAL_ROOT. "/backup/modules/$date";
-      drush_op('mkdir', $backup_dir, 0777, TRUE);
+      $backup_dir = DRUSH_DRUPAL_ROOT. '/backup';
+      drush_op('mkdir', $backup_dir, 0777);
+      $backup_dir .= '/modules';
+      drush_op('mkdir', $backup_dir, 0777);
+      $backup_dir .= "/$date";
+      drush_op('mkdir', $backup_dir, 0777);
       $backup_target = $backup_dir . '/'. $project['name'];
       if (!drush_op('rename', $source, $backup_target)) {
         drush_die(t('Failed to backup project directory !source to !backup_target', array('!source' => $source, '!backup_target' => $backup_target)));
