Chris@4
|
1 #!/usr/bin/env php
|
Chris@4
|
2 <?php
|
Chris@4
|
3
|
Chris@4
|
4 /**
|
Chris@4
|
5 * Example commandline front controller
|
Chris@4
|
6 *
|
Chris@4
|
7 * The commandline tool is useful for providing ad-hoc access to our class implementations
|
Chris@4
|
8 */
|
Chris@4
|
9
|
Chris@4
|
10 // If we're running from phar load the phar autoload file.
|
Chris@4
|
11 $pharPath = \Phar::running(true);
|
Chris@4
|
12 if ($pharPath) {
|
Chris@4
|
13 $autoloaderPath = "$pharPath/vendor/autoload.php";
|
Chris@4
|
14 } else {
|
Chris@4
|
15 if (file_exists(__DIR__.'/vendor/autoload.php')) {
|
Chris@4
|
16 $autoloaderPath = __DIR__.'/vendor/autoload.php';
|
Chris@4
|
17 } elseif (file_exists(__DIR__.'/../../autoload.php')) {
|
Chris@4
|
18 $autoloaderPath = __DIR__ . '/../../autoload.php';
|
Chris@4
|
19 } else {
|
Chris@4
|
20 die("Could not find autoloader. Run 'composer install'.");
|
Chris@4
|
21 }
|
Chris@4
|
22 }
|
Chris@4
|
23 $classLoader = require $autoloaderPath;
|
Chris@4
|
24
|
Chris@4
|
25 // Customization variables
|
Chris@4
|
26 $argv = $_SERVER['argv'];
|
Chris@4
|
27 $appName = "SiteAlias";
|
Chris@4
|
28 $appVersion = trim(file_get_contents(__DIR__ . '/VERSION'));
|
Chris@4
|
29 $commandClasses = [ \Consolidation\SiteAlias\Cli\SiteAliasCommands::class ];
|
Chris@4
|
30 $selfUpdateRepository = 'consolidation/site-alias';
|
Chris@4
|
31 $configPrefix = 'SITEALIAS';
|
Chris@4
|
32 $configFilePath = getenv($configPrefix . '_CONFIG') ?: getenv('HOME') . '/.site-alias/site-alias.yml';
|
Chris@4
|
33
|
Chris@4
|
34 // Define our Runner, and pass it the command classes we provide.
|
Chris@4
|
35 $runner = new \Robo\Runner($commandClasses);
|
Chris@4
|
36 $runner
|
Chris@4
|
37 ->setSelfUpdateRepository($selfUpdateRepository)
|
Chris@4
|
38 ->setConfigurationFilename($configFilePath)
|
Chris@4
|
39 ->setEnvConfigPrefix($configPrefix)
|
Chris@4
|
40 ->setClassLoader($classLoader);
|
Chris@4
|
41
|
Chris@4
|
42 // Execute the command and return the result.
|
Chris@4
|
43 $output = new \Symfony\Component\Console\Output\ConsoleOutput();
|
Chris@4
|
44 $statusCode = $runner->execute($argv, $appName, $appVersion, $output);
|
Chris@4
|
45 exit($statusCode);
|