From d964e0c54f2436e55274f923a0851c3587321aa9 Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Sun, 24 Nov 2024 13:31:47 -0500 Subject: [PATCH] feat: Adds justfile and install-dependencies script --- justfile | 59 +++++++++++++++++++++++++++++++++ scripts/install-dependencies.sh | 8 +++++ 2 files changed, 67 insertions(+) create mode 100644 justfile create mode 100755 scripts/install-dependencies.sh diff --git a/justfile b/justfile new file mode 100644 index 0000000..70dd363 --- /dev/null +++ b/justfile @@ -0,0 +1,59 @@ +build_dir := ".build" +ansible_dir := ".ansible" + +[private] +run_pandoc dir output_file: build + @pandoc --pdf-engine=xelatex \ + -H {{build_dir}}/"head.tex" \ + -H {{build_dir}}/"footer.tex" \ + -o {{dir}}/{{output_file}} \ + {{build_dir}}/"Report.md" \ + {{build_dir}}/"Definitions.md" + +[private] +run_ansible build *ARGS: + @echo "Running ansible with build directory: {{build}}" + @cd {{ansible_dir}} && \ + ansible-playbook playbook.yaml \ + --extra-vars "build_dir={{build}}" \ + {{ARGS}} + +alias ansible := build + +# Run the playbook, using the vault example files. +[group("build")] +ansible-vault-example: ( + run_ansible build_dir "--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) + +# 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" + +# Removes build directory, useful when debugging. +[group("utilities")] +clean: + @rm -rf {{build_dir}} + # just encase it gets built in wrong directory. + @rm -rf {{ansible_dir}}/{{build_dir}} diff --git a/scripts/install-dependencies.sh b/scripts/install-dependencies.sh new file mode 100755 index 0000000..4c3d8b3 --- /dev/null +++ b/scripts/install-dependencies.sh @@ -0,0 +1,8 @@ +#!/bin/zsh + +brew install pandoc \ + mactex-no-gui \ + imagemagick \ + gettext \ + ansible \ + just