summaryrefslogtreecommitdiffstats
path: root/adei/configs/adei.cron.sh
blob: eccb4cb4802e37b4478196684250cbc38827de8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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
)