From 733b1e4c50e5943de559778330061ed803070e1c Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Thu, 22 Feb 2018 16:22:17 +0100 Subject: Support more parameters from environment --- adei/configs/adei.cron.sh | 81 +++++++++++++++++++++++++++++++++++++++ adei/configs/adei_clean.cron.sh | 21 ++++++++++ adei/configs/adei_manager.cron.sh | 74 +++++++++++++++++++++++++++++++++++ adei/configs/config.actual.php | 12 +++--- adei/scripts/adei-branch.sh | 10 ++++- 5 files changed, 192 insertions(+), 6 deletions(-) create mode 100644 adei/configs/adei.cron.sh create mode 100644 adei/configs/adei_clean.cron.sh create mode 100644 adei/configs/adei_manager.cron.sh 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 -- cgit v1.2.1