diff options
author | Suren A. Chilingaryan <csa@suren.me> | 2018-02-22 16:22:17 +0100 |
---|---|---|
committer | Suren A. Chilingaryan <csa@suren.me> | 2018-02-22 16:22:17 +0100 |
commit | 733b1e4c50e5943de559778330061ed803070e1c (patch) | |
tree | da5bb6163b7a1b6e967616bba241fbb3b7c8e861 | |
parent | 521d7e938779e7d3a94aefa35c6e429aed1c3946 (diff) | |
download | adei-733b1e4c50e5943de559778330061ed803070e1c.tar.gz adei-733b1e4c50e5943de559778330061ed803070e1c.tar.bz2 adei-733b1e4c50e5943de559778330061ed803070e1c.tar.xz adei-733b1e4c50e5943de559778330061ed803070e1c.zip |
Support more parameters from environment
-rw-r--r-- | adei/configs/adei.cron.sh | 81 | ||||
-rw-r--r-- | adei/configs/adei_clean.cron.sh | 21 | ||||
-rw-r--r-- | adei/configs/adei_manager.cron.sh | 74 | ||||
-rw-r--r-- | adei/configs/config.actual.php | 12 | ||||
-rwxr-xr-x | adei/scripts/adei-branch.sh | 10 |
5 files changed, 192 insertions, 6 deletions
diff --git a/adei/configs/adei.cron.sh b/adei/configs/adei.cron.sh new file mode 100644 index 0000000..eccb4cb --- /dev/null +++ b/adei/configs/adei.cron.sh @@ -0,0 +1,81 @@ +#! /bin/bash + +function process_setup { + setup="$1" + parallel="$2" + + local args="-parallel $parallel" + if [ -n "$setup" ]; then + args="$args -setup $setup" + else + setup=$(php -r 'require "adei.php"; echo $ADEI_SETUP;') + fi + + if [ ! -d "setups/$setup" ]; then + echo "$setup is not existing" + return + fi + + if [ -f setups/$setup/adei.cron.sh ]; then + setups/$setup/adei.cron.sh + return + fi + + /usr/bin/php system/cache.php $args +} + +[ -f /adei/env ] && . /adei/env + +script=$( cd $(dirname "$0") && pwd )/$( basename "$0" ) +if [ -f /adei/sys/adei.cron.sh -a "$script" != /adei/sys/adei.cron.sh ]; then + /adei/sys/adei.cron.sh + exit +fi + +( + cd /srv/www/htdocs/adei + +# Link extra setups from docker installation + if [ -d /adei/cfg ]; then + for cfg in /adei/cfg/*/config.php; do + [ -f "$cfg" ] || break + path=$(dirname $cfg) + setup=$(basename $path) + if [[ ! -a "setups/$setup" ]]; then + ln -s $path setups/$setup + fi + done + fi + +# Find out if we need to process multiple setups + if [ -n "$ADEI_SETUP" -o -n "$ADEI_ENABLED_SETUPS" ]; then + if [ "$ADEI_SETUP" = "all" ]; then + list=$(echo "$ADEI_ENABLED_SETUPS" | xargs -n 1 | sort -u) + else + list=$(echo "$ADEI_SETUP $ADEI_ENABLED_SETUPS" | xargs -n 1 | sort -u) + fi + else + for name in setups/*; do + if [ -f $name/.cache ]; then + list="$list $(basename $name)" + fi + done + fi + +# Run processing for each requested setup + if [ -n "$list" ]; then + for setup in $list; do + process_setup "$setup" "$ADEI_PARALLEL" & + pids="$pids $!" + done + else + process_setup "" "$ADEI_PARALLEL" & + pids="$!" + fi + + /usr/bin/php system/downloads_check.php + + for pid in $pids; do + wait $pid + done +) diff --git a/adei/configs/adei_clean.cron.sh b/adei/configs/adei_clean.cron.sh new file mode 100644 index 0000000..e9b430f --- /dev/null +++ b/adei/configs/adei_clean.cron.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +[ -f /adei/env ] && . /adei/env + +script=$( cd $(dirname "$0") && pwd )/$( basename "$0" ) +if [ -f /adei/sys/adei_clean.cron.sh -a "$script" != /adei/sys/adei_clean.cron.sh ]; then + /adei/sys/adei_clean.cron.sh + exit +fi + +adei_path="/srv/www/htdocs/adei/" +path="$adei_path/tmp/clients/" + +find $path -type f -atime +0 -exec rm -f '{}' \; +find $path -type d -empty -atime +1 -mindepth 1 -delete + +#find $path -type f -mtime +7 -exec rm -f '{}' \; +#find $path -type d -empty -atime +1 -mindepth 1 -print0 | xargs -0 -r rmdir + +path="$adei_path/tmp/log" +find $path -type f -mtime +14 -exec rm -f '{}' \; diff --git a/adei/configs/adei_manager.cron.sh b/adei/configs/adei_manager.cron.sh new file mode 100644 index 0000000..0ba77b5 --- /dev/null +++ b/adei/configs/adei_manager.cron.sh @@ -0,0 +1,74 @@ +#! /bin/bash + + +function process_setup { + setup="$1" + parallel="$2" + + local args="-parallel $parallel" + if [ -n "$setup" ]; then + args="$args -setup $setup" + else + setup=$(php -r 'require "adei.php"; echo $ADEI_SETUP;') + fi + + if [ ! -d "setups/$setup" ]; then + echo "$setup is not existing" + return + fi + + if [ -f setups/$setup/adei_manager.cron.sh ]; then + setups/$setup/adei_manager.cron.sh + return + fi + + if [ -f setups/$setup/.cache_archives ]; then + /usr/bin/php system/cache.php -archives $args + fi + + if [ -f setups/$setup/.backup ]; then + /usr/bin/php system/backup.php $args + fi +} + +[ -f /adei/env ] && . /adei/env + +script=$( cd $(dirname "$0") && pwd )/$( basename "$0" ) +if [ -f /adei/sys/adei_manager.cron.sh -a "$script" != /adei/sys/adei_manager.cron.sh ]; then + /adei/sys/adei_manager.cron.sh + exit +fi + +( + cd /srv/www/htdocs/adei + + if [ -n "$ADEI_SETUP" -o -n "$ADEI_ENABLED_SETUPS" ]; then + if [ "$ADEI_SETUP" = "all" ]; then + list=$(echo "$ADEI_ENABLED_SETUPS" | xargs -n 1 | sort -u) + else + list=$(echo "$ADEI_SETUP $ADEI_ENABLED_SETUPS" | xargs -n 1 | sort -u) + fi + else + for name in setups/*; do + if [ -f $name/.cache ]; then + list="$list $(basename $name)" + fi + done + fi + + if [ -n "$list" ]; then + for setup in $list; do + process_setup "$setup" "$ADEI_PARALLEL" & + pids="$pids $!" + done + else + process_setup "" "$ADEI_PARALLEL" & + pids="$!" + fi + + /usr/bin/php system/downloads_clean.php + + for pid in $pids; do + wait $pid + done +) diff --git a/adei/configs/config.actual.php b/adei/configs/config.actual.php index 4c28e59..f4f4a99 100644 --- a/adei/configs/config.actual.php +++ b/adei/configs/config.actual.php @@ -7,10 +7,10 @@ $ADEI_SETUP = env("ADEI_SETUP", "all"); - $ADEI_RELEASE = true; - $LOGGER_LOG_REQUESTS = false; - $LOGGER_LOG_OUTPUT = false; - $LOGGER_STORE_OBJECTS = false; + $ADEI_RELEASE = filter_var(env("ADEI_RELEASE", true), FILTER_VALIDATE_BOOLEAN); + $LOGGER_LOG_REQUESTS = filter_var(env("ADEI_WRITE_LOGS", false), FILTER_VALIDATE_BOOLEAN); + $LOGGER_LOG_OUTPUT = filter_var(env("ADEI_WRITE_LOGS", false), FILTER_VALIDATE_BOOLEAN); + $LOGGER_STORE_OBJECTS = filter_var(env("ADEI_DEBUG", false), FILTER_VALIDATE_BOOLEAN); $ADEI_DB = array ( "host" => env("MYSQL_SERVER", "localhost"), @@ -19,4 +19,6 @@ "user" => env("MYSQL_USER", "adei"), "password" => env("MYSQL_PASSWORD", "adei") ); -?>
\ No newline at end of file + + $ADEI_CACHE_SCHEDULER = filter(env("ADEI_SCHEDULER", false), FILTER_VALIDATE_BOOLEAN); +?> diff --git a/adei/scripts/adei-branch.sh b/adei/scripts/adei-branch.sh index 5f14c01..f22cad3 100755 --- a/adei/scripts/adei-branch.sh +++ b/adei/scripts/adei-branch.sh @@ -10,7 +10,15 @@ if [ ! -d /adei/src -o ! -d /adei/tmp -o ! -d /adei/sys -o ! -d /adei/cfg ]; th exit 1 fi -LOCK_FILE=.lock +#LOCK_FILE=.lock +#( +# flock -x 10 +# if [ ! -f /adei/sys/adei.cron.sh ]; then +# cp -a /opt/configs/*.cron.sh /adei/sys +# fi +#) 10> /adei/sys/$LOCK_FILE + + ( flock -x 10 flock -x 11 |