#!/bin/bash
process=100
[ $# -ge 1 ] && process=$1
colw=50
nobpl=25
#nobpl=100
size=large
sp=":"
abnpb=":"
nobp=""
mc=":"
echo "" > process.log
for name in $( ls songs | head -n $process)
do
  echo "processing $name" >> process.log
  i=0
  w=$(cat songs/$name | wc -L)
  l=$(cat songs/$name | wc -l)
  #echo "\\newpage"
  $mc [ $w -lt $colw ] && $mc echo "\\begin{multicols}{2} "
  $abnpb echo "\\begin{absolutelynopagebreak} "
  head -n 1 songs/$name | sed 's/.*/\\section*{\0}\\addcontentsline{toc}{section}{\0} /g'
  echo "\texttt{"
  $sp echo "\\begin{samepage}"
  echo "\\begin{$size}"

  tail -n +3 songs/$name | 
  while IFS= read line
  do
    $nopb [ $i -lt $nobpl ] && $nopb echo "\\nopagebreak "
    if echo "$line" | grep "^ *$" > /dev/null
    then
      :
    else
      $nopb echo "\\nopagebreak "
      echo "$line" | sed 's/[[]/(/g;s/[]]/)/g;s/[„“]/"/g;s/’/'"'"'/g' | sed  's/–/-/g;s/®/R/g' | sed -r 's/^((([A-H](b|#|es|is)?7?(mi?)?([()]|7|6|5|aug|dim|sus[24]|maj|maj|\+)*)|[- /><:;.,0-9\(\)|Pp]|x|um|ca|val..k|triolov.|R|[cC]horus|[vV]erse|takt|[iI]ntro|[sS]olo|rock|let ring |rep(eat)?|to|fade|ref|hamm?(er)?)*)$/\\textbf{\1}/;bp;:a s/\n / \n/;ta;s/\n([^ ]+)/\\textbf{\1} \n/;ta;s/\n$//;:p' | sed 's/ /\\ /g' | sed 's/#/\\#/g'
    fi
    echo "\\newline"
    i=$(( $i + 1 ))
    $sp [ $i -eq $nobpl ] && $sp echo "\\end{$size} \\end{samepage} \\begin{$size}"
    $abnpb [ $i -eq $nobpl ] && $abnpb echo "\\end{$size}}\\end{absolutelynopagebreak}\\\\texttt{\\begin{$size}"
  done

  echo "\\end{$size}"

  echo "}"
  $sp [ $l -lt $nobpl ] && $sp echo "\\end{samepage}"
  $abnpb [ $l -le 32 ] && $abnpb echo "\\end{absolutelynopagebreak}\\ "

  $mc [ $w -lt $colw ] && $mc echo "\\vspace*{\\fill} \\end{multicols}"
done > content.tex
latex template.tex

dvi2tty template.dvi | tr -d "['~]" | head -n 200 | tr '\n' '\t' | sed 's/\* *\t *\*/\n/g' | sed ':a; s/\t[^\n]+\t/\t/g; ta'  | tr -d '\n' | tr '\t' '\n' | grep '^[A-Z][a-zA-Z ]*[0-9][0-9]*$'  | sed 's/ *\([0-9][0-9]*\)$/\n\1/' > ../dodatky

dvipdf template.dvi ../dodatky-zpevnik.pdf
cd ..
./processplain dodatky KT

