aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/docker/entrypoint.sh
diff options
context:
space:
mode:
Diffstat (limited to 'docker/entrypoint.sh')
-rwxr-xr-xdocker/entrypoint.sh53
1 files changed, 7 insertions, 46 deletions
diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh
index 4ca1304..59d4814 100755
--- a/docker/entrypoint.sh
+++ b/docker/entrypoint.sh
@@ -6,6 +6,11 @@
# 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 base_dir=/usr/src
readonly cfg_path=/etc/cgitize/cgitize.toml
@@ -13,6 +18,7 @@ readonly cfg_path=/etc/cgitize/cgitize.toml
secure_repo_dir() {
local dir
dir="$( /get_output_dir.py -- "$cfg_path" )"
+
chmod -- o-rwx "$dir"
# This is required so that nginx can access the directory.
@@ -21,54 +27,9 @@ secure_repo_dir() {
chown -- :101 "$dir"
}
-schedule_to_cron() {
- local schedule
- for schedule; do
- case "$schedule" in
- 15min) echo '*/15 * * * *' ;;
- hourly) echo '0 * * * *' ;;
- daily) echo '0 0 * * *' ;;
- weekly) echo '0 0 * * 1' ;;
- monthly) echo '0 0 1 * *' ;;
- *)
- echo "$schedule"
- ;;
- esac
- done
-}
-
-make_task_script() {
- echo "#!/bin/bash
-cd -- "$base_dir" &&$( printf -- ' %q' "$@" )"
-}
-
-setup_cron_task() {
- local schedule
- schedule="${SCHEDULE:-once}"
-
- if [ "$schedule" = once ]; then
- exec "$@"
- fi
-
- schedule="$( schedule_to_cron "$schedule" )"
-
- make_task_script "$@" > /task.sh
- chmod +x /task.sh
-
- # Run the task once when the container is started, regardless of schedule.
- /task.sh
-
- local crontab
- crontab="$schedule /task.sh
-# This is the new crontab."
-
- echo "$crontab" | crontab -
- exec crond -f
-}
-
main() {
secure_repo_dir
- setup_cron_task "$@"
+ exec "$script_dir/schedule.sh" "$@"
}
main "$@"