summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSuren A. Chilingaryan <csa@suren.me>2018-02-22 16:22:17 +0100
committerSuren A. Chilingaryan <csa@suren.me>2018-02-22 16:22:17 +0100
commit733b1e4c50e5943de559778330061ed803070e1c (patch)
treeda5bb6163b7a1b6e967616bba241fbb3b7c8e861
parent521d7e938779e7d3a94aefa35c6e429aed1c3946 (diff)
downloadadei-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.sh81
-rw-r--r--adei/configs/adei_clean.cron.sh21
-rw-r--r--adei/configs/adei_manager.cron.sh74
-rw-r--r--adei/configs/config.actual.php12
-rwxr-xr-xadei/scripts/adei-branch.sh10
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