diff --git a/db/install.provision.inc b/db/install.provision.inc deleted file mode 100644 index 54885ee..0000000 --- a/db/install.provision.inc +++ /dev/null @@ -1,13 +0,0 @@ -service('db')->connect(); -} - -function drush_db_pre_provision_install() { - d()->service('db')->create_site_database(); -} - -function drush_db_pre_provision_install_rollback() { - d()->service('db')->destroy_site_database(); -} diff --git a/db/verify.provision.inc b/db/verify.provision.inc new file mode 100644 index 0000000..6b1c192 --- /dev/null +++ b/db/verify.provision.inc @@ -0,0 +1,19 @@ +type === 'site') { + d()->service('db')->connect(); + } +} + +function drush_db_pre_verify_install() { + if (d()->type === 'site') { + d()->service('db')->create_site_database(); + } +} + +function drush_db_pre_provision_verify_rollback() { + if (d()->type === 'site') { + d()->service('db')->destroy_site_database(); + } +} diff --git a/platform/verify.provision.inc b/platform/verify.provision.inc index 834647a..e71a5fa 100644 --- a/platform/verify.provision.inc +++ b/platform/verify.provision.inc @@ -12,14 +12,29 @@ */ function drush_provision_drupal_provision_verify_validate() { if (d()->type === 'site') { - drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_SITE); - provision_prepare_environment(); + d()->service('db')->connect(); - _provision_drupal_create_settings_file(); - provision_drupal_push_site(); - - drush_errors_on(); - drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_FULL); + // START from drush_provision_drupal_provision_install_validate + if (!d()->uri) { + return drush_set_error("PROVISION_URL_REQUIRED", dt("You need to specify a valid url to install a site")); + } + /** From install hook, we obviously don't want to run it. + if (_provision_drupal_site_exists()) { + return drush_set_error('PROVISION_SITE_INSTALLED'); + } + */ + // END from drush_provision_drupal_provision_install_validate + + // START original +// drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_SITE); +// provision_prepare_environment(); +// +// _provision_drupal_create_settings_file(); +// provision_drupal_push_site(); +// +// drush_errors_on(); +// drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_FULL); + // END original } } @@ -98,23 +113,82 @@ function drush_provision_drupal_pre_provision_verify() { provision_drupal_push_site(); } elseif (d()->type === 'site') { - drush_set_option('packages', _scrub_object(provision_drupal_system_map()), 'site'); - // This is the actual drupal provisioning requirements. + + // When context is the site, cwd is the sites/DOMAIN folder. Make sure we go + // back to root to make sure we are creating directories in the right spot. + chdir(d()->root); _provision_drupal_create_directories(); - _provision_drupal_maintain_aliases(); - _provision_drupal_ensure_htaccess_update(); - // Requires at least the database settings to complete. + d()->service('db')->create_site_database(); + + + + // START original +// drush_set_option('packages', _scrub_object(provision_drupal_system_map()), 'site'); +// // This is the actual drupal provisioning requirements. +// _provision_drupal_create_directories(); +// _provision_drupal_maintain_aliases(); +// _provision_drupal_ensure_htaccess_update(); +// // Requires at least the database settings to complete. +// +// _provision_drupal_create_settings_file(); +// +// // If this is the hostmaster site, save the ~/.drush/drushrc.php file. +// if (d()->root == d('@hostmaster')->root && d()->uri == d('@hostmaster')->uri) { +// $aegir_drushrc = new Provision_Config_Drushrc_Aegir(); +// $aegir_drushrc->write(); +// } +// +// provision_drupal_push_site(drush_get_option('override_slave_authority', FALSE)); + // END original + } +} + +/** + * Verify command hook + */ +function drush_provision_drupal_provision_verify() { - _provision_drupal_create_settings_file(); + if (d()->type !== 'site') { + return; + } - // If this is the hostmaster site, save the ~/.drush/drushrc.php file. - if (d()->root == d('@hostmaster')->root && d()->uri == d('@hostmaster')->uri) { - $aegir_drushrc = new Provision_Config_Drushrc_Aegir(); - $aegir_drushrc->write(); - } + // START from drush_provision_drupal_provision_install + // Requires at least the database settings to complete. + provision_prepare_environment(); + _provision_drupal_create_settings_file(); - provision_drupal_push_site(drush_get_option('override_slave_authority', FALSE)); + $config = new Provision_Config_Drushrc_Site(d()->name, drush_get_context('site')); + $config->write(); +// provision_drupal_push_site($override_slave_authority = TRUE); + + provision_save_site_data(); + +// drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_SITE); + +// // call a backend task to do the actual installation. +// $result = provision_backend_invoke(d()->name, "provision-install-backend", array(), array('client_email' => drush_get_option('client_email'))); +// // pass the login link back to the front end. +// drush_set_option('login_link', $result['context']['login_link']); +// +// drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_FULL); +// drush_set_option('installed', TRUE, 'site'); + _provision_drupal_maintain_aliases(); + + // END from drush_provision_drupal_provision_install + + // START from drush_provision_drupal_pre_provision_verify() +// _provision_drupal_ensure_htaccess_update(); + + // If this is the hostmaster site, save the ~/.drush/drushrc.php file. + if (d()->root == d('@hostmaster')->root && d()->uri == d('@hostmaster')->uri) { + $aegir_drushrc = new Provision_Config_Drushrc_Aegir(); + $aegir_drushrc->write(); } + + provision_drupal_push_site(drush_get_option('override_slave_authority', FALSE)); + // END from drush_provision_drupal_pre_provision_verify() + + } /** @@ -122,10 +196,14 @@ function drush_provision_drupal_pre_provision_verify() { */ function drush_provision_drupal_post_provision_verify() { if (d()->type === 'site') { - _provision_drupal_rebuild_caches(); - drush_set_option('installed', TRUE, 'site'); + + if (drush_get_option('installed', FALSE)) { + _provision_drupal_rebuild_caches(); + drush_include_engine('drupal', 'cron_key'); + drush_set_option('packages', _scrub_object(provision_drupal_system_map()), 'site'); + } +// drush_set_option('installed', TRUE, 'site'); _provision_client_create_symlink(); - drush_include_engine('drupal', 'cron_key'); } }