diff --git a/src/Plugin.php b/src/Plugin.php
index 943ce667..85ae8d71 100644
--- a/src/Plugin.php
+++ b/src/Plugin.php
@@ -41,6 +41,7 @@ class Plugin implements PluginInterface, EventSubscriberInterface
'The value of "%s" (in the composer.json "extra".section) must be an integer larger then %d, %s given.';
const MESSAGE_NOT_INSTALLED = 'PHPCodeSniffer is not installed';
const MESSAGE_NOTHING_TO_INSTALL = 'Nothing to install or update';
+ const MESSAGE_PLUGIN_UNINSTALLED = 'PHPCodeSniffer Composer Installer is uninstalled';
const MESSAGE_RUNNING_INSTALLER = 'Running PHPCodeSniffer Composer Installer';
const PACKAGE_NAME = 'squizlabs/php_codesniffer';
@@ -49,6 +50,8 @@ class Plugin implements PluginInterface, EventSubscriberInterface
const PHPCS_CONFIG_REGEX = '`%s:[^\r\n]+`';
const PHPCS_CONFIG_KEY = 'installed_paths';
+ const PLUGIN_NAME = 'dealerdirect/phpcodesniffer-composer-installer';
+
/**
* @var Composer
*/
@@ -182,9 +185,24 @@ public function onDependenciesChangedEvent()
$io->write(sprintf('%s', self::MESSAGE_NOTHING_TO_INSTALL));
}
} else {
- $exitCode = 1;
- if ($isVerbose) {
- $io->write(sprintf('%s', self::MESSAGE_NOT_INSTALLED));
+ $pluginPackage = $this
+ ->composer
+ ->getRepositoryManager()
+ ->getLocalRepository()
+ ->findPackages(self::PLUGIN_NAME)
+ ;
+
+ $isPluginUninstalled = count($pluginPackage) === 0;
+
+ if ($isPluginUninstalled) {
+ if ($isVerbose) {
+ $io->write(sprintf('%s', self::MESSAGE_PLUGIN_UNINSTALLED));
+ }
+ } else {
+ $exitCode = 1;
+ if ($isVerbose) {
+ $io->write(sprintf('%s', self::MESSAGE_NOT_INSTALLED));
+ }
}
}