fix: better scripting to allow folks to make teh html only

This commit is contained in:
silver 2024-05-13 23:35:27 +01:00
parent 9882340b6d
commit d4869448fb
Signed by: silver
GPG key ID: 54E2C71918E93B74
4 changed files with 103 additions and 34 deletions

View file

@ -34,6 +34,7 @@ handovers:
name: "Handovers" name: "Handovers"
paths: paths:
- Committee/_Handovers_pdf/ - Committee/_Handovers_pdf/
- Committee/errors.log
minutes: minutes:
@ -45,4 +46,4 @@ minutes:
name: "Minutes" name: "Minutes"
paths: paths:
- Minutes_pdf/ - Minutes_pdf/
- Minutes/errors.log - errors.log

View file

@ -2,6 +2,9 @@
cd Committee cd Committee
# cleanup the last run (if there was one)
rm -rf _Handovers_html
# copy in teh config for this folder # copy in teh config for this folder
cp ../_scripts/md_toml/_Handovers.md.toml ./.md.toml cp ../_scripts/md_toml/_Handovers.md.toml ./.md.toml
@ -10,6 +13,11 @@ cargo-bfom
## cleanup ## cleanup
rm -f .md.toml rm -f .md.toml
# if the user only wants teh html tehn early return
if [[ $1 == "html" ]]; then
exit 0;
fi
# recursively parse _Handovers_html use wkhtmltopdf to convert to pdf # recursively parse _Handovers_html use wkhtmltopdf to convert to pdf
cd _Handovers_html cd _Handovers_html
@ -36,7 +44,7 @@ for d in */ ; do
echo "$out_folder/$stripped.pdf" echo "$out_folder/$stripped.pdf"
# convert teh html to pdf # convert teh html to pdf
wkhtmltopdf -q --enable-local-file-access --no-stop-slow-scripts "$stripped.html" "$out_folder/$stripped.pdf" 2> ./tmp.txt wkhtmltopdf -q --enable-local-file-access --no-stop-slow-scripts "$stripped.html" "$out_folder/$stripped.pdf" 2>> ../errors.log &
fi fi
done done
done done

View file

@ -1,52 +1,104 @@
#!/usr/bin/env bash #!/usr/bin/env bash
root="$PWD"
# delete to allow for a full rebuild without any ghost artifacts # make teh html files first
rm -rf "Minutes_pdf" function build_html(){
# wipe and reset teh old html folder
rm -rf Minutes_html
mkdir Minutes_html
cd Minutes # this folder has css and images needed
cp -R Minutes/_Templates Minutes_html/
for year in */ ; do cd Minutes
# skip symlinks
[ -L "''${year%/}" ] && continue
# exclude teh template fodler
if [[ $year == *"_Templates"* ]]; then
continue
fi
# go into the year folder # loop through each year worth of data
cd $year for year in */ ; do
# skip symlinks
[ -L "''${year%/}" ] && continue
# exclude teh template fodler
if [[ $year == *"_Templates"* ]]; then
continue
fi
# convert the Committee ones first # go into the year folder
cd $year
cp ../../_scripts/md_toml/_Minutes-Committee.md.toml ./.md.toml # convert the Committee ones first
cargo-bfom cp ../../_scripts/md_toml/_Minutes-Committee.md.toml ./.md.toml
cargo-bfom
cp ../../_scripts/md_toml/_Minutes-Council.md.toml ./.md.toml # then the council
cargo-bfom cp ../../_scripts/md_toml/_Minutes-Council.md.toml ./.md.toml
cargo-bfom
mkdir -p "../../Minutes_pdf/$year/Committee" # cleanup
mkdir -p "../../Minutes_pdf/$year/Council" rm -f .md.toml
# iterate the files # create teh new folders where stuff is going to
for file in {Committee,Council}_html/*.html; do mkdir -p "../../Minutes_html/$year/Committee"
mkdir -p "../../Minutes_html/$year/Council"
# iterate the files
for file in {Committee,Council}_html/*.html; do
if [ -f "$file" ]; then
stripped=''${file/_html/""}
cp $file "../../Minutes_html/$year/$stripped"
fi
done
# the temp folders where teh html was created, leaving these could cause ghost artifacts
rm -rf ./*_html
# back up to original folder
cd ../
done
# return to root
cd $root
}
function build_pdf(){
# used to match **
shopt -s globstar
# wipe and reset past runs
rm -rf Minutes_pdf
mkdir Minutes_pdf
cd Minutes_html
for file in **/*.html; do
# skip teh template folder
if [[ $file == *"_Templates"* ]]; then
continue
fi
# only deal with files
if [ -f "$file" ]; then if [ -f "$file" ]; then
# we need teh filename/path # .html => .pdf
stripped=''${file/.html/""} output="../Minutes_pdf/''${file/.html/".pdf"}"
output="../../Minutes_pdf/$year${stripped/_html/""}.pdf"
echo $output echo $output
wkhtmltopdf -q --enable-local-file-access --no-stop-slow-scripts "$stripped.html" "$output" 2>> ../errors.log # have someplace for it to go
mkdir -p $(dirname $output)
wkhtmltopdf -q --enable-local-file-access --no-stop-slow-scripts "$file" "$output" 2>> ../errors.log &
fi fi
done done
# cleanup shopt -u globstar
rm -f .md.toml cd $root
# the temp folders where teh html was created, leaving these could cause ghost artifacts }
rm -rf ./*_html
done
cd ../
if [[ $1 == "html" ]];
then
build_html
else
build_html
build_pdf
fi

View file

@ -52,11 +52,19 @@
export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH
${./_scripts/format_handovers.sh} ${./_scripts/format_handovers.sh}
''; '';
handovers_html = pkgs.writeShellScriptBin "format_handovers_html" ''
export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH
${./_scripts/format_handovers.sh} html
'';
minutes = pkgs.writeShellScriptBin "format_minutes" '' minutes = pkgs.writeShellScriptBin "format_minutes" ''
export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH
${./_scripts/format_minutes.sh} ${./_scripts/format_minutes.sh}
''; '';
minutes_html = pkgs.writeShellScriptBin "format_minutes_html" ''
export PATH=${pkgs.lib.makeBinPath [pkgs.wkhtmltopdf bfom.defaultPackage.x86_64-linux]}:$PATH
${./_scripts/format_minutes.sh} html
'';
}; };
}); });
} }