Compare commits

1 Commits

Author SHA1 Message Date
kris b800aafe51 testing 2026-05-10 14:50:56 -04:00
+7 -20
View File
@@ -11,30 +11,17 @@ err() {
} }
usage() { usage() {
printf 'usage: %s [-z] <zensical_version> <repo_dir>\n' "$prog" >&2 printf 'usage: %s <zensical-semver> <repo-dir> [selinux-context]\n' "$prog" >&2
} }
selinux=0 if (($# != 2 && $# != 3)); then
while getopts ':z' opt; do
case $opt in
z)
selinux=1
;;
*)
usage
exit 1
;;
esac
done
shift $((OPTIND - 1))
if (($# != 2)); then
usage usage
exit 1 exit 1
fi fi
tag=$1 tag=$1
dir=$2 dir=$2
label=$3
if [[ ! $tag =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then if [[ ! $tag =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
err "tag must be a version like 1.2.3 (got: $tag)" err "tag must be a version like 1.2.3 (got: $tag)"
@@ -57,12 +44,12 @@ git pull -q --ff-only || err "failed to update repo"
new=$(git rev-parse HEAD) || err "git rev-parse failed after pull at: $(pwd)" new=$(git rev-parse HEAD) || err "git rev-parse failed after pull at: $(pwd)"
if [[ $old != "$new" || ! -d site ]]; then if [[ $old != "$new" || ! -d site ]]; then
docker_opts=(run --rm) if ! docker run --rm -v "$PWD:/docs" "zensical/zensical:$tag" build; then
[[ $selinux -eq 1 ]] && docker_opts+=(--security-opt label=level:s0)
docker_opts+=(-v "$PWD:/docs" "zensical/zensical:$tag" build)
if ! docker "${docker_opts[@]}"; then
err "build failed" err "build failed"
fi fi
fi fi
[[ -d site ]] || err "build did not produce site directory" [[ -d site ]] || err "build did not produce site directory"
if [[ -n $label ]]; then
chcon -R -- "$label" site || err "failed to change SELinux context: $label"
fi