public function PatchInfoDrupalorgCommands::list in PatchInfo 8.2
Show a report of patches applied to Drupal core and contrib projects.
@command patchinfo_drupalorg:list @field-labels project: Project project_label: Project label delta: Delta info: Info url: URL issue_number: Issue number issue_url: Issue URL issue_title: Issue Title issue_status: Issue Status issue_priority: Issue Priority issue_category: Issue Category issue_author_name: Issue Author Name issue_created: Issue Created issue_changed: Issue Changed @default-string-field name @usage patchinfo-do-list --projects=drupal @usage patchinfo-do-list --projects=drupal,pathauto @usage patchinfo-do-list --format=yaml @usage patchinfo-do-list --format=csv @usage patchinfo-do-list --fields=name,info @usage patchinfo-do-list --fields=Label,Delta @aliases patchinfo-do-list @hidden
Parameters
array $options: Array of output options.
Return value
\Consolidation\OutputFormatters\StructuredData\RowsOfFields Patch information as rows of fields.
Overrides PatchInfoCommands::list
File
- modules/
patchinfo_drupalorg/ src/ Commands/ PatchInfoDrupalorgCommands.php, line 98
Class
- PatchInfoDrupalorgCommands
- A Drush commandfile for the patchinfo_drupalorg:list command.
Namespace
Drupal\patchinfo_drupalorg\CommandsCode
public function list(array $options = [
'projects' => NULL,
'format' => 'table',
'fields' => 'project,project_label,delta,url,issue_number,issue_title,issue_url,issue_status,issue_priority,issue_category,issue_author_name,issue_created,issue_changed',
]) {
$table = $this
->getTableData($options['projects']);
$pattern = '/(Issue\\ |issue\\ |#)(?P<issuenumber>\\d+)(\\||,|\\.|\\ |:|$)/';
foreach ($table as $key => $patchinfo_list_row) {
$patchinfo_list_row['project'] = $patchinfo_list_row['name'];
$patchinfo_list_row['project_label'] = $patchinfo_list_row['label'];
$patchinfo_list_row['issue_number'] = '';
$patchinfo_list_row['issue_url'] = '';
$patchinfo_list_row['issue_title'] = $patchinfo_list_row['info'];
$patchinfo_list_row['issue_status'] = '';
$patchinfo_list_row['issue_priority'] = '';
$patchinfo_list_row['issue_category'] = '';
$patchinfo_list_row['issue_author_name'] = '';
$success = preg_match($pattern, $patchinfo_list_row['info'], $match);
if ($success && isset($match['issuenumber'])) {
$drupalorg_id = $match['issuenumber'];
$composer_module_issue = (object) $this->patchinfoDrupalorgService
->getIssue($drupalorg_id);
if ($composer_module_issue) {
$patchinfo_list_row['issue_number'] = $composer_module_issue->nid;
$patchinfo_list_row['issue_url'] = $composer_module_issue->url;
$patchinfo_list_row['issue_title'] = $composer_module_issue->title;
$patchinfo_list_row['issue_status'] = self::$issueStatus[$composer_module_issue->field_issue_status];
$patchinfo_list_row['issue_priority'] = self::$issuePriorities[$composer_module_issue->field_issue_priority];
$patchinfo_list_row['issue_category'] = self::$issueCategories[$composer_module_issue->field_issue_category];
$patchinfo_list_row['issue_author_name'] = $composer_module_issue->author->name;
$patchinfo_list_row['issue_created'] = date('Y-m-d\\TH:i:s', $composer_module_issue->created);
$patchinfo_list_row['issue_changed'] = date('Y-m-d\\TH:i:s', $composer_module_issue->changed);
}
}
$table[$key] = $patchinfo_list_row;
}
$data = new RowsOfFields($table);
$data
->addRendererFunction(function ($key, $cellData, FormatterOptions $options, $rowData) {
if ($key === 'project') {
return "<comment>{$cellData}</>";
}
return $cellData;
});
return $data;
}