|
@@ -20,6 +20,7 @@ use Composer\Json\JsonFile;
|
|
|
|
|
|
/**
|
|
|
* @author Robert Schönthal <seroscho@googlemail.com>
|
|
|
+ * @author Jordi Boggiano <j.boggiano@seld.be>
|
|
|
*/
|
|
|
class ValidateCommand extends Command
|
|
|
{
|
|
@@ -29,13 +30,10 @@ class ValidateCommand extends Command
|
|
|
->setName('validate')
|
|
|
->setDescription('validates a composer.json')
|
|
|
->setDefinition(array(
|
|
|
- new InputArgument('file', InputArgument::OPTIONAL, 'path to composer.json file', getcwd().'/composer.json')
|
|
|
+ new InputArgument('file', InputArgument::OPTIONAL, 'path to composer.json file', './composer.json')
|
|
|
))
|
|
|
->setHelp(<<<EOT
|
|
|
The validate command validates a given composer.json
|
|
|
-<info>php composer.phar validate</info> for current location
|
|
|
-or
|
|
|
-<info>php composer.phar validate /path/to/composer.json</info> for custom location
|
|
|
|
|
|
EOT
|
|
|
)
|
|
@@ -46,11 +44,22 @@ EOT
|
|
|
{
|
|
|
$file = $input->getArgument('file');
|
|
|
|
|
|
+ if (!file_exists($file)) {
|
|
|
+ $output->writeln('<error>'.$file.' not found.</error>');
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (!is_readable($file)) {
|
|
|
- throw new \InvalidArgumentException('composer.json not found '.$file);
|
|
|
+ $output->writeln('<error>'.$file.' is not readable.</error>');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ JsonFile::parseJson(file_get_contents($file));
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ $output->writeln('<error>'.$e->getMessage().'</error>');
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
- $result = JsonFile::parseJson(file_get_contents($file));
|
|
|
- $output->writeln('<info>valid</info> '.$file.' is valid');
|
|
|
+ $output->writeln('<info>'.$file.' is valid</info>');
|
|
|
}
|
|
|
}
|