@CTAP_MEX
DevOps

Как сгенерировать html из bash?

Всем привет.
Есть некие отчеты, много отчетов. Складываются в такую файловую структуру:
/reports
|__Year
|__Month_1
| |__Day_1
| | |__report_1.html
| | |__report_2.html
| | |__report_n.html
| |__Day_2
| |__report.....
|__Month_2.......
и т.д.

Нужно на башике собрать html со спойлерами/вложенностью:
1 уровень - Year
2 уровень - Month
3 уровень - Day
отчеты

Пока удалось дернуть все файлы с путями через find, сохранить в текстовик.
Читаем текстовик построчно и выцепляем из него год, месяц, день
А вот дальше муть....

#!/bin/bash

find reports/folder_1/folder_2/ -type f > links.txt

echo "Создаем body.html для PROD и добавляем details"
echo "<details>" > body.html

while read LINE;
do
	echo "$LINE"
		for l in $LINE
		do
		YEAR="$( cut -d '/' -f 4 <<< "$l" )"
		echo $YEAR
			if grep "$YEAR" body.html; then
			echo $YEAR
			else echo "
					<summary>$YEAR</summary> <br>" >> body.html
			fi
			
		MONTH="$( cut -d '/' -f 5 <<< "$l" )"
		echo $MONTH
			if grep "$MONTH" body.html; then
			echo $MONTH
			else echo "<details>
					<summary>$MONTH</summary> <br>" >> body.html
			fi
			
		DAY="$( cut -d '/' -f 6 <<< "$l" )"
		echo $DAY
			if grep "$DAY" body.html; then
			echo $DAY
			else echo "<details>
					<summary>$DAY</summary> <br>" >> body.html
			fi
		
				DIRPATH=${LINE%/}
				echo $DIRPATH
				for file in $DIRPATH/*
				do
				NAME="$( cut -d '/' -f 7 <<< "$l" )"
				echo $NAME
				echo "<a href="$LINE"  class="rep-btn">$NAME</a> <br>"   >> body.html
				done
			echo "</details>" >>body.html
		done	
		

done < links.txt


Буду признателен любой помощь )
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы