Files
hpa-report-template/justfile

88 lines
2.6 KiB
Makefile

build_dir_name := ".build"
ansible_dir := ".ansible"
[private]
default:
just --list
[private]
run_pandoc dir output_file: build
@pandoc --pdf-engine=xelatex \
-H {{build_dir_name}}/"head.tex" \
-H {{build_dir_name}}/"footer.tex" \
-o {{dir}}/{{output_file}} \
{{build_dir_name}}/"Report.md" \
{{build_dir_name}}/"Definitions.md"
[private]
run_ansible build *ARGS:
@echo "Running ansible with build directory: {{build}}"
@cd {{ansible_dir}} && \
ansible-playbook playbook.yaml \
--extra-vars '{"config": { "work_dir": {{justfile_directory()}}, "build_dir": {{build}} }}' \
{{ARGS}}
alias ansible := build
# Run the playbook, using the vault example files.
[group("build")]
ansible-vault-example: (
run_ansible build_dir_name
"--extra-vars @group_vars/vault_example/vars.yaml"
"--extra-vars @group_vars/vault_example/vault.yaml"
"--ask-vault-password"
)
# Run the playbook, which generates files required to build a report.
[group("build")]
build: (run_ansible justfile_directory()/build_dir_name)
# Build & generate an HTML report.
[group("generate")]
html title="Report.html" output_dir=".build": (
run_pandoc output_dir file_stem(title) + ".html"
)
open {{output_dir}}/{{ prepend(file_stem(title), ".html") }}
# Build & generate a PDF report.
[group("generate")]
pdf title="Report.pdf" output_dir="${PWD}": (run_pandoc output_dir file_stem(title) + ".pdf")
open {{output_dir}}/{{ prepend(file_stem(title), ".pdf") }} && \
@osascript ./scripts/notify.scpt
# Build & generate a Latex file.
[group("generate")]
[group("debug")]
tex title="Report.tex" output_dir=".build": (run_pandoc output_dir file_stem(title) + ".tex")
@echo "Wrote to: " + {{output_dir}}/{{file_stem(title)}} + ".tex"
# Setup the working directory
[group("setup")]
setup tag='setup': (
run_ansible justfile_directory()/build_dir_name "--tags " + tag
)
# Setup the working directory with ansible-vault.
[group("setup")]
setup-vault: (setup "setup-with-vault")
# Removes build directory, useful when debugging.
[group("utilities")]
clean-build-dir:
@rm -rf {{build_dir_name}}
@rm -rf {{ansible_dir}}/{{build_dir_name}}
# Removes build directory, template, variable, and pdf files. Use with caution or work may lost.
[group("utilities")]
[confirm('This will remove build directories, template files, variables, and pdf files. Are you sure you want to do that?')]
clean-all: clean-build-dir
@rm -f ./Report.{md,pdf}
@rm -f vars.{yml,yaml}
@rm -f vault.{yml,yaml}
# Install the required ansible roles.
[group("utilities")]
install-requirements:
@ansible-galaxy install -r ./.ansible/requirements.yaml