diff --git a/bin/doctrine.bat b/bin/doctrine.bat
new file mode 100644
index 000000000..a9e8ceefd
--- /dev/null
+++ b/bin/doctrine.bat
@@ -0,0 +1,9 @@
+@echo off
+
+if "%PHPBIN%" == "" set PHPBIN=@php_bin@
+if not exist "%PHPBIN%" if "%PHP_PEAR_PHP_BIN%" neq "" goto USE_PEAR_PATH
+GOTO RUN
+:USE_PEAR_PATH
+set PHPBIN=%PHP_PEAR_PHP_BIN%
+:RUN
+"%PHPBIN%" "@bin_dir@\doctrine" %*
diff --git a/bin/doctrine.php b/bin/doctrine.php
index a94cdff67..701038488 100644
--- a/bin/doctrine.php
+++ b/bin/doctrine.php
@@ -1,4 +1,21 @@
.
+ */
require_once 'Doctrine/Common/ClassLoader.php';
@@ -19,7 +36,7 @@ if (file_exists($configFile)) {
}
require $configFile;
-
+
foreach ($GLOBALS as $helperSetCandidate) {
if ($helperSetCandidate instanceof \Symfony\Component\Console\Helper\HelperSet) {
$helperSet = $helperSetCandidate;
@@ -30,29 +47,4 @@ if (file_exists($configFile)) {
$helperSet = ($helperSet) ?: new \Symfony\Component\Console\Helper\HelperSet();
-$cli = new \Symfony\Component\Console\Application('Doctrine Command Line Interface', Doctrine\ORM\Version::VERSION);
-$cli->setCatchExceptions(true);
-$cli->setHelperSet($helperSet);
-$cli->addCommands(array(
- // DBAL Commands
- new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(),
- new \Doctrine\DBAL\Tools\Console\Command\ImportCommand(),
-
- // ORM Commands
- new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(),
- new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(),
- new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(),
- new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(),
- new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(),
- new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(),
- new \Doctrine\ORM\Tools\Console\Command\EnsureProductionSettingsCommand(),
- new \Doctrine\ORM\Tools\Console\Command\ConvertDoctrine1SchemaCommand(),
- new \Doctrine\ORM\Tools\Console\Command\GenerateRepositoriesCommand(),
- new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesCommand(),
- new \Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand(),
- new \Doctrine\ORM\Tools\Console\Command\ConvertMappingCommand(),
- new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand(),
- new \Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand(),
-
-));
-$cli->run();
+\Doctrine\ORM\Tools\Console\ConsoleRunner::run($helperSet);
diff --git a/build.xml b/build.xml
index b8a3ac2ff..1bf835843 100644
--- a/build.xml
+++ b/build.xml
@@ -167,6 +167,7 @@
+
diff --git a/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php b/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php
new file mode 100644
index 000000000..f74713a7c
--- /dev/null
+++ b/lib/Doctrine/ORM/Tools/Console/ConsoleRunner.php
@@ -0,0 +1,69 @@
+.
+ */
+
+namespace Doctrine\ORM\Tools\Console;
+
+use Symfony\Component\Console\Application;
+use Symfony\Component\Console\Helper\HelperSet;
+
+class ConsoleRunner
+{
+ /**
+ * Run console with the given helperset.
+ *
+ * @param \Symfony\Component\Console\Helper\HelperSet $helperSet
+ * @return void
+ */
+ static public function run(HelperSet $helperSet)
+ {
+ $cli = new Application('Doctrine Command Line Interface', \Doctrine\ORM\Version::VERSION);
+ $cli->setCatchExceptions(true);
+ $cli->setHelperSet($helperSet);
+ self::addCommands($cli);
+ $cli->run();
+ }
+
+ /**
+ * @param Application $cli
+ */
+ static public function addCommands(Application $cli)
+ {
+ $cli->addCommands(array(
+ // DBAL Commands
+ new \Doctrine\DBAL\Tools\Console\Command\RunSqlCommand(),
+ new \Doctrine\DBAL\Tools\Console\Command\ImportCommand(),
+
+ // ORM Commands
+ new \Doctrine\ORM\Tools\Console\Command\ClearCache\MetadataCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\ClearCache\ResultCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\ClearCache\QueryCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\SchemaTool\CreateCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\SchemaTool\UpdateCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\SchemaTool\DropCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\EnsureProductionSettingsCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\ConvertDoctrine1SchemaCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\GenerateRepositoriesCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\GenerateEntitiesCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\GenerateProxiesCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\ConvertMappingCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\RunDqlCommand(),
+ new \Doctrine\ORM\Tools\Console\Command\ValidateSchemaCommand(),
+ ));
+ }
+}
\ No newline at end of file