-<?php\r
-\r
-namespace Friendica\Core\Console;\r
-\r
-/**\r
- * Tired of chasing typos and finding them after a commit.\r
- * Run this and quickly see if we've got any parse errors in our application files.\r
- *\r
- * @author Hypolite Petovan <mrpetovan@gmail.com>\r
- */\r
-class Typo extends \Asika\SimpleConsole\Console\r
-{\r
- protected $helpOptions = ['h', 'help', '?'];\r
-\r
- protected function getHelp()\r
- {\r
- $help = <<<HELP\r
-console typo - Checks for parse errors in Friendica files\r
-Usage\r
- bin/console typo [-h|--help|-?] [-v]\r
-\r
-Description\r
- Checks all PHP files in the Friendica file tree for parse errors\r
-\r
-Options\r
- -h|--help|-? Show help information\r
- -v Show more debug information.\r
-HELP;\r
- return $help;\r
- }\r
-\r
- protected function doExecute()\r
- {\r
- if ($this->getOption('v')) {\r
- $this->out('Class: ' . __CLASS__);\r
- $this->out('Arguments: ' . var_export($this->args, true));\r
- $this->out('Options: ' . var_export($this->options, true));\r
- }\r
-\r
- if (count($this->args) > 0) {\r
- throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');\r
- }\r
-\r
- $a = get_app();\r
-\r
- $php_path = $a->getConfigValue('config', 'php_path', 'php');\r
-\r
- if ($this->getOption('v')) {\r
- $this->out('Directory: src');\r
- }\r
-\r
- $Iterator = new \RecursiveDirectoryIterator('src');\r
-\r
- foreach (new \RecursiveIteratorIterator($Iterator) as $file) {\r
- if (substr($file, -4) === '.php') {\r
- $this->checkFile($php_path, $file);\r
- }\r
- }\r
-\r
- if ($this->getOption('v')) {\r
- $this->out('Directory: mod');\r
- }\r
-\r
- $files = glob('mod/*.php');\r
- $this->checkFiles($php_path, $files);\r
-\r
- if ($this->getOption('v')) {\r
- $this->out('Directory: include');\r
- }\r
-\r
- $files = glob('include/*.php');\r
- $this->checkFiles($php_path, $files);\r
-\r
- if ($this->getOption('v')) {\r
- $this->out('Directory: addon');\r
- }\r
-\r
- $dirs = glob('addon/*');\r
- foreach ($dirs as $dir) {\r
- $addon = basename($dir);\r
- $files = glob($dir . '/' . $addon . '.php');\r
- $this->checkFiles($php_path, $files);\r
- }\r
-\r
- if ($this->getOption('v')) {\r
- $this->out('String files');\r
- }\r
-\r
- $this->checkFile($php_path, 'util/strings.php');\r
-\r
- $files = glob('view/lang/*/strings.php');\r
- $this->checkFiles($php_path, $files);\r
-\r
- $this->out('No errors.');\r
-\r
- return 0;\r
- }\r
-\r
- private function checkFiles($php_path, array $files)\r
- {\r
- foreach ($files as $file) {\r
- $this->checkFile($php_path, $file);\r
- }\r
- }\r
-\r
- private function checkFile($php_path, $file)\r
- {\r
- if ($this->getOption('v')) {\r
- $this->out('Checking ' . $file);\r
- }\r
-\r
- $output = [];\r
- $ret = 0;\r
- exec("$php_path -l $file", $output, $ret);\r
- if ($ret !== 0) {\r
- throw new \RuntimeException('Parse error found in ' . $file . ', scan stopped.');\r
- }\r
- }\r
-}\r
+<?php
+
+namespace Friendica\Core\Console;
+
+use Friendica\BaseObject;
+
+/**
+ * Tired of chasing typos and finding them after a commit.
+ * Run this and quickly see if we've got any parse errors in our application files.
+ *
+ * @author Hypolite Petovan <hypolite@mrpetovan.com>
+ */
+class Typo extends \Asika\SimpleConsole\Console
+{
+ protected $helpOptions = ['h', 'help', '?'];
+
+ protected function getHelp()
+ {
+ $help = <<<HELP
+console typo - Checks for parse errors in Friendica files
+Usage
+ bin/console typo [-h|--help|-?] [-v]
+
+Description
+ Checks all PHP files in the Friendica file tree for parse errors
+
+Options
+ -h|--help|-? Show help information
+ -v Show more debug information.
+HELP;
+ return $help;
+ }
+
+ protected function doExecute()
+ {
+ if ($this->getOption('v')) {
+ $this->out('Class: ' . __CLASS__);
+ $this->out('Arguments: ' . var_export($this->args, true));
+ $this->out('Options: ' . var_export($this->options, true));
+ }
+
+ if (count($this->args) > 0) {
+ throw new \Asika\SimpleConsole\CommandArgsException('Too many arguments');
+ }
+
+ $php_path = BaseObject::getApp()->getConfigCache()->get('config', 'php_path', 'php');
+
+ if ($this->getOption('v')) {
+ $this->out('Directory: src');
+ }
+
+ $Iterator = new \RecursiveDirectoryIterator('src');
+
+ foreach (new \RecursiveIteratorIterator($Iterator) as $file) {
+ if (substr($file, -4) === '.php') {
+ $this->checkFile($php_path, $file);
+ }
+ }
+
+ if ($this->getOption('v')) {
+ $this->out('Directory: mod');
+ }
+
+ $files = glob('mod/*.php');
+ $this->checkFiles($php_path, $files);
+
+ if ($this->getOption('v')) {
+ $this->out('Directory: include');
+ }
+
+ $files = glob('include/*.php');
+ $this->checkFiles($php_path, $files);
+
+ if ($this->getOption('v')) {
+ $this->out('Directory: addon');
+ }
+
+ $dirs = glob('addon/*');
+ foreach ($dirs as $dir) {
+ $addon = basename($dir);
+ $files = glob($dir . '/' . $addon . '.php');
+ $this->checkFiles($php_path, $files);
+ }
+
+ if ($this->getOption('v')) {
+ $this->out('String files');
+ }
+
+ $files = glob('view/lang/*/strings.php');
+ $this->checkFiles($php_path, $files);
+
+ $this->out('No errors.');
+
+ return 0;
+ }
+
+ private function checkFiles($php_path, array $files)
+ {
+ foreach ($files as $file) {
+ $this->checkFile($php_path, $file);
+ }
+ }
+
+ private function checkFile($php_path, $file)
+ {
+ if ($this->getOption('v')) {
+ $this->out('Checking ' . $file);
+ }
+
+ $output = [];
+ $ret = 0;
+ exec("$php_path -l $file", $output, $ret);
+ if ($ret !== 0) {
+ throw new \RuntimeException('Parse error found in ' . $file . ', scan stopped.');
+ }
+ }
+}