#!/bin/bash
# toto je poslední funkční definitivní verze z 2021-08-05
davka="1 2 3 4 5 27 30 31"
davka="4 5" # jan skutky
davka="21 22 23 24 25 26 27 30 31" # experimenty
davka="8" # 2Cor - chyby v HHH
davka="30" # cely NZ jako jeden soubor
davka="29" # pokus 29 - pouze 300 uvodnich radku
davka="27" #Apokalypsa
davka="5" # skutky
davka="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31" # vse, komplet total...
davka="1 2 3 4 5"

mobil=0   #1/0 0=nevhodné pro mobil
mobil=1   #1/0 1=vhodné pro mobil
cisloradky=1
cisloradky=0 # 1/0 vedle verse zobrazi cislo radky souboru, aby se dalo urcit, kde je chyba v knihach NZ
oriznout=0
oriznout=1 #0=zachová / 1=orizne čísla veršu - dobré pro kontrolu

soubor_texttmp="/dev/shm/text.tmp"
soubor_obsahtmp="/dev/shm/obsah.tmp"

if [ $mobil -eq 0 ];then
	mobil_class="" # normalne jsou styly bez m, napr. heb 
	mobil1=""
	mobil2=""
	mobil3=""
else
	mobil_class="m" # pro mobil konci na m, napr. hebm
	mobil1="<big><big><big>"
	mobil2="</big></big></big>"
	mobil3="_mobil"
fi
# mobil3="_kontrola" #suffix ke jmenu souboru


r1=( "Matouš" 	"Matouš" 	"matous"  	"Mt"	1 	 1071 )
r2=( "Marek" 	"Marek" 	"marek" 	"Mk"	1072 1749 )
r3=( "Lukáš" 	"Lukáš" 	"lukas"  	"Lk"	1750 2900 )
r4=( "Jan" 		"Jan" 		"jan"  		"J"		2901 3779 )
r5=( "Skutky apoštolů" 	"Skutky apoštolské" "skutky"		"Sk"  	3780 4786 )
r6=( "Římanům" 			"List Římanům" 		"rimanum"  		"R"		4787 5219 )
r7=( "1 Korintským" "1. List Korintským" 	"1korintskym" 	"1Ko" 	5220 5656 )
r8=( "2 Korintským" "2. List  Korintským" 	"2korintskym" 	"2Ko" 	5657 5913 )
r9=( "Galatským" 	"List Galatským" 		"galatskym"  	"Ga" 	5914 6063 )
r10=( "Efezským" 	"List Efezským" 		"efezskym"  	"Ef"	6064 6218 )
r11=( "Filipským" 	"List Filipským" 		"filipskym"  	"Fi"	6219 6322 )
r12=( "Koloským" 	"List Koloským" 		"koloskym"  	"Ko"	6323 6417 )
r13=( "1 Tesalonickým" "1. List Tesalonickým" "1tesalonickym"	"1Te"	6418 6506 )
r14=( "2 Tesalonickým" "2. List Tesalonickým" "2tesalonickym"  	"2Te"	6507 6553 )
r15=( "1 Timoteovi" "1. List Timoteovi" 	"1timoteovi"  		"1Tm"	6554 6666 )
r16=( "2 Timoteovi" "2. List Timoteovi" 	"2timoteovi"  		"2Tm"	6667 6749 )
r17=( "Titovi" 		"List Titovi" 			"titovi"  			"Ti"	6750 6795 )
r18=( "Filemonovi" 	"List Filemonovi" 		"filemonovi"  		"Fi"	6796 6820 )
r19=( "Židům" 		"List Židům" 			"zidum"  			"Zi"	6821 7123 )
r20=( "Jakubův" 	"List Jakubův" 			"jakubuv"  			"Ja"	7124 7231 )
r21=( "1 Petrův" 	"1. List Petrův" 		"1petruv"  			"1Pe"	7232 7336 )
r22=( "2 Petrův" 	"2. List Petrův" 		"2petruv"  			"2Pe"	7337 7397 )
r23=( "1 Janův" 	"1. List Janův" 		"1januv"  			"1J"	7398 7502 )
r24=( "2 Janův" 	"2. List Janův" 		"2januv"  			"2J"	7503 7515 )
r25=( "3 Janův" 	"3. List Janův" 		"3januv"  			"3J"	7516 7530 )
r26=( "Judův" 		"List Judův" 			"juduv"  			"Ju"	7531 7555 )
r27=( "Zjevení Janovo" 	"Zjevení Janovo - Apokalypsa" 	"apokalypsa" 	"Zj"	7556 	7960 )
r29=( "Pokus - smazat" 		"Pokus"					"odpad" 			"Po"	1 		300  )
r30=( "Celý Nový Zákon" 	"Celý Nový Zákon"		"novy_zakon" 		"Nz"	1 		7960 )
r31=( "Evangelia a Skutky" 	"Evangelia a Skutky" 	"evangelia_skutky" 	"ES"	1 		4786 )
# echo > hlavicka.tmp
# echo "<a name=zzz>" > $soubor_obsahtmp # na začátek knihy vlozi
# > $soubor_obsahtmp
# echo > $soubor_texttmp

# grep -n "^Marek" cep_poznamky_NT.txt |  tee  -i -p warn  >(head -n 1  >&1) >(tail -n 1  >&1) >/dev/null | sed -n -r 's/(^[0-9]*):.*/\1/p' # vygeneruje prvni a posledni vers # 1072 # 1749


function bunka # (radka sloupec)
	{
	radka="$1" 
	sloupec="$2"
	sloupec=$(( $sloupec - 1 ))
 	eval echo \${r${radka}[sloupec]} # napred expanduje, například na "echo ${r3[1]}", a pak vyhodnoti
	}
# echo '$(bunka 3 3) nebo  ${r3[4]}' # dva zpusoby vypisu


function ukol { #---------------------------------------------------------------
FILENAME1="new_hebrew_NT_nekudot2.txt"
FILENAME4="new_hebrew_NT_nekudot.txt"
FILENAME2="kralicka_NT.txt"
FILENAME3="cep_poznamky_NT.txt"
FILENAME6="textus_receptus_morfology_doplneny.txt"
FILENAME7="peshitto.txt"
FILENAME8="Habrit-Hakhadasha-Haderekh_nekudot.txt"
# FILENAME8="Habrit-Hakhadasha-Haderekh.txt"
# FILENAME8="Habrit-Hakhadasha-Haderekh_nekudot.txt"

FILENAME50="$soubor_texttmp"
# echo > $FILENAME50

cislo_knihy=0

exec {FD1}<${FILENAME1}     # open file for read, assign descriptor
echo "Opened ${FILENAME1} for read using descriptor ${FD1}"
exec {FD2}<${FILENAME2}     # open file for read, assign descriptor
echo "Opened ${FILENAME2} for read using descriptor ${FD2}"
exec {FD3}<${FILENAME3}     # open file for read, assign descriptor
echo "Opened ${FILENAME3} for read using descriptor ${FD3}"
exec {FD4}<${FILENAME4}     # open file for read, assign descriptor
echo "Opened ${FILENAME4} for read using descriptor ${FD4}"
exec {FD6}<${FILENAME6}     # open file for read, assign descriptor
echo "Opened ${FILENAME6} for read using descriptor ${FD6}"
exec {FD7}<${FILENAME7}     # open file for read, assign descriptor
echo "Opened ${FILENAME7} for read using descriptor ${FD7}"
exec {FD8}<${FILENAME8}     # open file for read, assign descriptor
echo "Opened ${FILENAME8} for read using descriptor ${FD8}"
# exec {FD5}>>${FILENAME5}     # open file for write append, assign descriptor
exec 50>>${FILENAME50} # open file for write append, assign descriptor
echo "Opened ${FILENAME50} for write/append using descriptor 50"
#   http://tldp.org/LDP/abs/html/io-redirection.html

for i in $( seq 1 $konec)
	do
 	echo -e -n "$i\r" ; # prubezne vypisuje cislo radky, kterou zpracovava
		read -u ${FD1} LINE1
		read -u ${FD2} LINE2
		read -u ${FD3} LINE3
		read -u ${FD4} LINE4
		read -u ${FD6} LINE6
		read -u ${FD7} LINE7
		read -u ${FD8} LINE8
	
# vytvorime dve verze citace 
# 	hnv_cast1=$(echo -n  ${LINE1}  | sed -E 's/(^\[.*\]) (.*)/\1/'     | tr '\n' ' ')
    CEP_cast1=$(echo -n  ${LINE3}  | sed -E 's/([^:]*:[0-9]+) (.*)$/\1/' | tr '\n' ' ') # '[^:]*' = najdi vsechny nedvojtecky od zacatku radky 
    cislokapitoly=$(sed -n -E 's/.* ([0-9]+):1$/\1/p' <<< $CEP_cast1) # najde prvni vers a cislo kapitoly
    if [ ! "$cislokapitoly" ==  "" ]; then 
# 			echo  "<span class=cit><a href=#zzz>Zpět</span>" 	>&50 #&{FD5}  na konec každé kapitoly odskok na zacatek souboru
		if [ $cislokapitoly -eq 1 ]; then 
			cislo_knihy=$(( $cislo_knihy + 1 ))
			zkratka="$(bunka $cislo_knihy 4)"
			kniha="$(bunka $cislo_knihy 1)"
			if [ $i -ge $zacatek ];then
				echo -e "</p>\n<h1>$kniha</h1>\n<p class=heb>" >>$soubor_obsahtmp
			fi
		fi
		cislokapitolytxt="$zkratka$(numfmt  --format '%02f'   $cislokapitoly)"
		if [ $i -ge $zacatek ];then
			echo "<a href=#$cislokapitolytxt>$cislokapitoly</a>&nbsp;&nbsp;&nbsp; " >> $soubor_obsahtmp # vlozi zacatky kapitol
		fi
	fi

	if [ $i -lt $zacatek ];then
		continue # preskoci nepotrebne radky
	fi
	(( $cisloradky )) && cisloradkytxt="($i)" # je-li treba, vygeneruje cisla radek do citace
		
    
if [ $oriznout -eq 1 ]; then
    hnv_cast2=$(echo -n  ${LINE1}  | sed -E 's/(^\[.*\]) (.*)/\2/'     | tr '\n' ' ')
    kra_cast2=$(echo -n  ${LINE2}  | sed -E 's/[^:]*:[0-9]+ (.*)$/\1/' | tr '\n' ' ')
    CEP_cast2=$(echo -n  ${LINE3}  | sed -E 's/[^:]*:[0-9]+ (.*)$/\1/' | tr '\n' ' ') # '[^:]*' = najdi vsechny nedvojtecky od zacatku radky 
    H2V_cast2=$(echo -n  ${LINE4}  | sed -E 's/[^:]*:[0-9]+ (.*)$/\1/' | tr '\n' ' ') # '[^:]*' = najdi vsechny nedvojtecky od zacatku radky 
    TR_cast2=$( echo -n  ${LINE6}  | sed -E 's/[^:]*:[0-9]+ (.*)$/\1/' | tr '\n' ' ') # '[^:]*' = najdi vsechny nedvojtecky od zacatku radky 
    PST_cast2=$(echo -n  ${LINE7}  | sed -E 's/[^:]*:[0-9]+ (.*)$/\1/' | tr '\n' ' ') # '[^:]*' = najdi vsechny nedvojtecky od zacatku radky 
#   HHH_cast2=$(echo -n  ${LINE8}  | sed -r 's/[^\t]*\t//' | tr '\n' ' ') # '[^:]*' = najdi vsechny nedvojtecky od zacatku radky
    HHH_cast2=$(echo -n  ${LINE8}  | sed -r 's/[^\ ]*\ //' | tr '\n' ' ') # '[^:]*' = najdi vsechny nedvojtecky od zacatku radky
#     echo "HHH_cast2>>>$HHH_cast2<<<"
#     read
else
	# neoriznute radky slouzi k parovani versu
    hnv_cast2=$(echo -n  ${LINE1}  | tr '\n' ' ') #
    kra_cast2=$(echo -n  ${LINE2}  | tr '\n' ' ') #
    CEP_cast2=$(echo -n  ${LINE3}  | tr '\n' ' ') #
    H2V_cast2=$(echo -n  ${LINE4}  | tr '\n' ' ') #
    TR_cast2=$( echo -n  ${LINE6}  | tr '\n' ' ') #
    PST_cast2=$(echo -n  ${LINE7}  | tr '\n' ' ') #
    HHH_cast2=$(echo -n  ${LINE8}  | tr '\n' ' ') #
fi


# Toto je vlastni export, zde si muzete navolit, ktere radky chcete mit a v jakem poradi:
#     echo  "<span class=cit>$hnv_cast1</span>" 						>&50 #&{FD5}
    if [ ! "$cislokapitoly" ==  "" ]; then 
		echo  "<a name=$cislokapitolytxt>" 						>&50 #&{FD5}		
# 		echo  "<span class=cit><a href=#zzz>$CEP_cast1 $cisloradkytxt</a></span>" 	>&50 #&{FD5}
		echo  "<p class=cit><a href=#zzz>$CEP_cast1 $cisloradkytxt</a></p>" 	>&50 #&{FD5}
	else
# 		echo  "<span class=cit>$CEP_cast1 $cisloradkytxt</span>" 	>&50 #&{FD5}
		echo  "<p class=cit>$CEP_cast1 $cisloradkytxt</p>" 	>&50 #&{FD5}
	fi
# 		echo  "<span class=cit><a href=#zzz>Zpět</span>" 	>&50 #&{FD5}  na konec každé kapitoly odskok na 
# 		    if [ ! "$cislokapitoly" ==  "" ]; then 
    echo  "<p class=heb$mobil_class>$mobil1$hnv_cast2$mobil2""</p>" 		>&50 #&{FD5}
    echo  "<p class=h2v$mobil_class>$mobil1$H2V_cast2$mobil2""</p>" 		>&50 #&{FD5}
    echo  "<p class=hhh$mobil_class>$mobil1$HHH_cast2$mobil2""</p>" 		>&50 #&{FD5}
    echo  "<p class=kra>$kra_cast2</p>" 						>&50 #&{FD5}
    echo  "<p class=cep>$CEP_cast2</p>" 						>&50 #&{FD5}
    echo  "<p class=tr>$TR_cast2</p>" 					        >&50 #&{FD6}
    echo  "<p class=pst>$PST_cast2</p><hr>" 						>&50 #&{FD7}
#     echo  "<p class=hhh>$HHH_cast2</p><hr>" 					>&50 #&{FD7}
done

# zaverecne logo
echo "<p><img src=http://klimes.mysteria.cz/zpravodaj/logo_jk.php>
</BODY></HTML>"  >&50 

echo Close files
exec {FD1}<&-    
exec {FD2}<&-    
exec {FD3}<&-    
exec {FD4}<&-    
# exec {FD5}<&-    
exec {FD6}<&-    
exec {FD7}<&-    
exec {FD8}<&-    
exec 50<&-    


} # konce function ukol

# main {}: 
for d in $davka 
	do 
	echo
	echo > $soubor_obsahtmp
	echo > $soubor_texttmp    # vymaz soubory
# 	Nacte informace o knize ci ukolu z db vyse.
	kratky="$(bunka $d 1)"
	dlouhy="$(bunka $d 2)"
	soubor="$(bunka $d 3)$mobil3" # mobil3 je fakultativni doplnek
	zkratka="$(bunka $d 4)"
	zacatek="$(bunka $d 5)"
	konec="$(bunka $d 6)"
	echo "Zacinam ukol $d - $dlouhy - $(date +%Y-%m-%d_%H-%M-%S)"
	ukol $d
	echo "Koncim_ ukol $d - $dlouhy - $(date +%Y-%m-%d_%H-%M-%S)"
	echo -e "</p><hr>\n" >> $soubor_obsahtmp # ukonci soubor s obsahem
	cat hlavicka.htm $soubor_obsahtmp $soubor_texttmp > $soubor".htm"
	echo $soubor".htm je hotov." 
	if [ "$soubor" == "novy_zakon" ]; then 
		mv novy_zakon.htm novy_zakon_nh_nt_nekudot_kralicka_cep_pesita.htm
		zip novy_zakon_nh_nt_nekudot_kralicka_cep_pesita.zip novy_zakon_nh_nt_nekudot_kralicka_cep_pesita.htm 
	fi
	
	done
exit


function vyexportovat tabulku {
# toto jsou pomocne procedury, pokud jsou treba...

# sed -n -r 's/(^[0-9]? ?[[:alpha:]]*\ ?([[:alpha:]]*)) [0-9]+:[0-9]+.*/\1/p' cep_poznamky_NT.txt  | uniq
# toto najde nazvy biblickych knih


seznam="Matouš
Marek
Lukáš
Jan
Skutky apoštolské
Římanům
1 Korintským
2 Korintským
Galatským
Efezským
Filipským
Koloským
1 Tesalonickým
2 Tesalonickým
1 Timoteovi
2 Timoteovi
Titovi
Filemonovi
Židům
Jakubův
1 Petrův
2 Petrův
1 Janův
2 Janův
3 Janův
Judův
Zjevení Janovo"

i=0
while read 
	do 
	((i++))
	kratky=$REPLY 
	dlouhy=$REPLY 
	bezmezer="$(tr -d " " <<< "$REPLY" | tr '[:upper:]' '[:lower:]'| iconv -f UTF-8 -t ASCII//TRANSLIT )" 
	soubor=${bezmezer,,}$mobil3 # bezmezer a lower case
	zacatek=$(grep -n "^$kratky" cep_poznamky_NT.txt | head -n 1 | sed -n -r 's/(^[0-9]? ?[0-9]*):.*/\1/p')
	konec=$(  grep -n "^$kratky" cep_poznamky_NT.txt | tail -n 1 | sed -n -r 's/(^[0-9]? ?[0-9]*):.*/\1/p')
	echo "r$i=( \"$kratky\" \"$dlouhy\" \"$soubor\"  $zacatek $konec )"
# 	vygeneruje db vyse
	done <<< "$seznam"
exit 
}