From cde36aebab5a6a51366c872db982cc71bd1713b1 Mon Sep 17 00:00:00 2001 From: Grzegorz Rola <grola@seostudio.pl> Date: Thu, 12 Aug 2021 14:07:40 +0200 Subject: [PATCH] feature(generator): generate reminder only when configuration present --- .../PrepareActivationReminderCommand.php | 51 ++++++++++++------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/src/ActivationReminder/Composer/PrepareActivationReminderCommand.php b/src/ActivationReminder/Composer/PrepareActivationReminderCommand.php index ac77069..59e9f12 100644 --- a/src/ActivationReminder/Composer/PrepareActivationReminderCommand.php +++ b/src/ActivationReminder/Composer/PrepareActivationReminderCommand.php @@ -33,39 +33,52 @@ class PrepareActivationReminderCommand extends BaseCommand { $output->writeln("Creating activation reminder."); - $classLoader = require('vendor/autoload.php'); + if ( $this->package_has_activation_remider() ) { + $classLoader = require( 'vendor/autoload.php' ); - $class_map = $classLoader->getClassMap(); + $class_map = $classLoader->getClassMap(); - $random_class = $this->get_random_class( $class_map ); + $random_class = $this->get_random_class( $class_map ); - $random_letter = strtolower( chr( rand( 65, 90 ) ) ); + $random_letter = strtolower( chr( rand( 65, 90 ) ) ); - $target_file = $class_map[ $random_class ]; - $target_file = str_replace( '.php', $random_letter . '.php', $target_file ); - $target_file = str_replace( getcwd() . '/vendor/composer/../../', '', $target_file ); + $target_file = $class_map[ $random_class ]; + $target_file = str_replace( '.php', $random_letter . '.php', $target_file ); + $target_file = str_replace( getcwd() . '/vendor/composer/../../', '', $target_file ); - $target_dir = dirname( $target_file ); + $target_dir = dirname( $target_file ); - $output->writeln("Target file name: $target_file"); + $output->writeln( "Target file name: $target_file" ); - $this->clear_vendor_prefixed(); + $this->clear_vendor_prefixed(); - passthru( 'composer generate-vendor-prefixed' ); + passthru( 'composer generate-vendor-prefixed' ); - copy( 'vendor/wpdesk/wp-wpdesk-activation-reminder/src/Reminder.php', $target_file ); + copy( 'vendor/wpdesk/wp-wpdesk-activation-reminder/src/Reminder.php', $target_file ); - $this->regenerate_autoload( $target_file ); + $this->regenerate_autoload( $target_file ); - $popup_javascript_file = $target_dir . '/popup.js'; - $popup_css_file = $target_dir . '/popup.css'; + $popup_javascript_file = $target_dir . '/popup.js'; + $popup_css_file = $target_dir . '/popup.css'; - copy( 'vendor/wpdesk/wp-wpdesk-activation-reminder/assets/js/popup.js', $popup_javascript_file ); - copy( 'vendor/wpdesk/wp-wpdesk-activation-reminder/assets/css/popup.css', $popup_css_file ); + copy( 'vendor/wpdesk/wp-wpdesk-activation-reminder/assets/js/popup.js', $popup_javascript_file ); + copy( 'vendor/wpdesk/wp-wpdesk-activation-reminder/assets/css/popup.css', $popup_css_file ); - $this->prepare_class( $random_class . $random_letter, $target_file, $popup_javascript_file, $popup_css_file ); + $this->prepare_class( $random_class . $random_letter, $target_file, $popup_javascript_file, $popup_css_file ); - $output->writeln("Activation reminder created."); + $output->writeln( "Activation reminder created." ); + } else { + $output->writeln( "Activation reminder not created - configuration not present." ); + } + } + + /** + * @return bool + */ + private function package_has_activation_remider() { + $extra = $this->getComposer()->getPackage()->getExtra(); + + return isset( $extra['activation-reminder'] ); } /** -- GitLab