Версии mvn: display-plugin-updates - структурированный вывод - PullRequest
1 голос
/ 03 февраля 2020

Есть ли способ сделать выходные зависимости "mvn version: display-plugin-updates" в структурированном формате (например, CSV, XML или JSON), чтобы его можно было легко проанализировать?

1 Ответ

2 голосов
/ 11 февраля 2020

Итак, без каких-либо гарантий, вот фрагмент скрипта bash, благодаря моему коллеге, который получает вывод из display-plugin-updates | display-dependency-updates и преобразует в разделенный запятыми список; поддерживает многолинейные выходы и работает у нас

#!/bin/bash

source_file=/opt/report.txt
target_file=/opt/comma_report.txt

#Clean source file from "[INFO]"
sed 's/\[INFO\] //g' $source_file > /tmp/clean_report.txt

#Join next line to the previous one if it starts with more than 3 spaces
sed -i -E ':a ; $!N ; s/\n^   / / ; ta ; P ; D' /tmp/clean_report.txt

#Clean file from more than 2 spaces
sed -i 's/  *//g' /tmp/clean_report.txt

#Grep for arrows, sort and send result to grepped_report.txt
grep "\->" /tmp/clean_report.txt | awk '!x[$0]++' > /tmp/grepped_report.txt

#Clean file from ".RELEASE"
sed -i 's/.RELEASE//g' /tmp/grepped_report.txt

#Replace arrows with commas
sed -i 's/->/,/g' /tmp/grepped_report.txt

#Replace more than 2 dots with comma and send the output to target file
sed -r -e 's/\.{3,}/,/g' /tmp/grepped_report.txt > $target_file

#Delete tmp files
rm /tmp/clean_report.txt
rm /tmp/grepped_report.txt

#The end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...