diff -ru provision.cvs/provision.module provision/provision.module
--- provision.cvs/provision.module	2008-10-17 16:55:14.000000000 -0400
+++ provision/provision.module	2008-10-17 17:17:10.000000000 -0400
@@ -73,6 +73,8 @@
     variable_get('provision_config_path', PROVISION_PARENT_PATH .'/config')) ;
   define('PROVISION_VHOST_PATH', PROVISION_CONFIG_PATH .'/vhost.d');
   define('PROVISION_DRUSHRC_PATH', PROVISION_CONFIG_PATH .'/drushrc.d');
+  define('PROVISION_INCOMING_PATH', 
+    variable_get('provision_incoming_path', PROVISION_PARENT_PATH . '/incoming')) ;
 
   define('PROVISION_SCRIPT_USER', variable_get('provision_script_user', get_current_user()));   
   
@@ -280,6 +282,11 @@
     'callback' => '_provision_delete',
     'description' => 'Delete a site.'
   );
+ 
+  $items['provision incoming'] = array(
+    'callback' => '_provision_incoming',
+    'description' => 'Check incoming directory.'
+  );
 
   if (!function_exists('hosting_setup')) {
     $items['provision setup'] = array(
@@ -537,6 +544,7 @@
 function _provision_verify($url = '') {
   _provision_create_dir(PROVISION_CONFIG_PATH, t('Provision configuration'), 0700);
   _provision_create_dir(PROVISION_BACKUP_PATH, t('Web server configuration'), 0700);
+  _provision_create_dir(PROVISION_INCOMING_PATH, t('Manual import configuration'), 0700);
   
   $data = array();
   $rolled_back = provision_invoke("verify", $url, $data);
@@ -684,17 +692,14 @@
 function _provision_setup() {
   $success = TRUE;
   $drush_path = sprintf("%s/%s/drush.php", PROVISION_DOCROOT_PATH, drupal_get_path('module', 'drush'));
-
   $success &= provision_path('symlink', $drush_path, PROVISION_DOCROOT_PATH . '/drush.php', 
     t('Created symlink for drush.php file'), 
     t('Could not create symlink for drush.php'), 
     PROVISION_FRAMEWORK_ERROR);
   $success &= _provision_create_dir(PROVISION_CONFIG_PATH, t('Config path'), 0700);
   $success &= _provision_create_dir(PROVISION_DRUSHRC_PATH, t('Drush config path'), 0700);
-
   return $success; 
 }
-
 /**
  * Drush command wrapper for the setup of the platform
  */
@@ -706,8 +711,37 @@
   foreach ($logs as $log) {
     print "$log[message]\n";
   }
-
   if (provision_get_error()) {
     print "\nThe command did not complete successfully, please fix the issues and re-run this script.";
   }
 }
+
+function _provision_incoming($url) {
+  $new_files = file_scan_directory(PROVISION_INCOMING_PATH, $url.'.*\.tar\.gz$');
+  if (sizeof($new_files) >= 1) {
+    provision_log("warning","New backup found:". print_r($new_files,true));
+    foreach ($new_files as $file) {
+      //determiner le nouveau nom
+      $suggested = PROVISION_BACKUP_PATH . "/".$url."-" . date("Y-m-d",mktime()) . ".tar.gz";
+      // Use format of mysite.com-2008-01-02, if already existing, add number.
+      while (is_file($suggested)) {
+        $count++;
+        $suggested = PROVISION_BACKUP_PATH ."/". $url ."-". date("Y-m-d", mktime()) ."_$count.tar.gz";
+      }
+
+      $source = PROVISION_INCOMING_PATH ."/". $file->basename;
+      $dest = $suggested;
+      file_move($source, $dest);
+      $data = provision_get_site_data($url);
+      $node = node_load($data["site_id"]);
+      $platform = node_load($node->platform);
+
+      hosting_site_add_backup($data["site_id"], $platform->web_server, PROVISION_BACKUP_PATH.$suggested, t('New backup from incoming'));
+
+      provision_save_site_data($url, $data);
+      provision_output($url, $data);
+    }
+  } else {
+    provision_log("warning","No new backup found.");
+  }
+}
