/** * Execute this action * * @param string[] $args command line args * @return int exit code */ public function perform($args) { $cwd = new FileCollection('.'); $isModule = new ExtensionEqualsFilter('.json'); // If an argument is given, search only that vendor if (isset($args[0])) { $find = $cwd->getCollection($args[0]); } else { $find = $cwd; } $total = 0; Console::writeLine('@', $cwd->getURI()); foreach (new FilteredIOCollectionIterator($find, $isModule, true) as $module) { $result = self::$json->decodeFrom($module->getInputStream()); Console::writeLine(new Module($result['vendor'], $result['module']), ': ', $result['info']); $total++; } Console::writeLine(); Console::writeLine($total, ' module(s) installed'); return 0; }