aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/docker/run.sh
diff options
context:
space:
mode:
authorEgor Tensin <egor@tensin.name>2026-10-14 16:06:30 +0500
committerEgor Tensin <egor@tensin.name>2026-10-14 16:06:30 +0500
commit99f83042ad2ebf51c03a17480945241b35252f7e (patch)
tree2ef04a4585fa968002f5de69b277e6ce1fc3a1f5 /docker/run.sh
parentt/i/docker: move SSH setup to git_server (diff)
downloadcgitize-99f83042ad2ebf51c03a17480945241b35252f7e.tar.gz
cgitize-99f83042ad2ebf51c03a17480945241b35252f7e.zip
docker: cgitize.sh -> run.sh
Diffstat (limited to 'docker/run.sh')
-rwxr-xr-xdocker/run.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/docker/run.sh b/docker/run.sh
new file mode 100755
index 0000000..96118d5
--- /dev/null
+++ b/docker/run.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+
+# Copyright (c) 2023 Egor Tensin <egor@tensin.name>
+# This file is part of the "cgitize" project.
+# For details, see https://github.com/egor-tensin/cgitize
+# Distributed under the MIT License.
+
+set -o errexit -o nounset -o pipefail
+shopt -s inherit_errexit lastpipe
+
+script_dir="$( dirname -- "${BASH_SOURCE[0]}" )"
+script_dir="$( cd -- "$script_dir" && pwd )"
+readonly script_dir
+
+readonly src_dir=/usr/src
+readonly cfg_path=/etc/cgitize/cgitize.toml
+readonly fail_path=/fail
+
+secure_repo_dir() {
+ local dir
+ dir="$( "$script_dir/get_output_dir.py" -- "$cfg_path" )"
+
+ chmod -- o-rwx "$dir"
+
+ # This is required so that nginx can access the directory.
+ # nginx uses a fixed UID:
+ # https://github.com/nginxinc/docker-nginx/blob/4785a604aa40e0b0a69047a61e28781a2b0c2069/mainline/alpine-slim/Dockerfile#L16
+ chown -- :101 "$dir"
+}
+
+setup() {
+ secure_repo_dir
+ touch -- "$fail_path"
+}
+
+run() {
+ cd -- "$src_dir"
+ python3 -m cgitize.main "$@"
+ rm -f -- "$fail_path"
+}
+
+main() {
+ setup
+ run "$@"
+}
+
+main "$@"