2
2
3
3
set -eu
4
4
5
+ DOCUMENT_ROOT=" /var/www/html"
6
+
7
+ # entrypoint-utils.sh
8
+ configPrefix=" ESPOCRM_CONFIG_"
9
+
10
+ compareVersion () {
11
+ local version1=" $1 "
12
+ local version2=" $2 "
13
+ local operator=" $3 "
14
+
15
+ echo $( php -r " echo version_compare('$version1 ', '$version2 ', '$operator ');" )
16
+ }
17
+
18
+ join () {
19
+ local sep=" $1 " ; shift
20
+ local out; printf -v out " ${sep//%/%% } %s" " $@ "
21
+ echo " ${out# $sep } "
22
+ }
23
+
24
+ getConfigParamFromFile () {
25
+ local name=" $1 "
26
+
27
+ php -r "
28
+ if (file_exists('$DOCUMENT_ROOT /data/config-internal.php')) {
29
+ \$ config=include('$DOCUMENT_ROOT /data/config-internal.php');
30
+
31
+ if (array_key_exists('$name ', \$ config)) {
32
+ die(\$ config['$name ']);
33
+ }
34
+ }
35
+
36
+ \$ config=include('$DOCUMENT_ROOT /data/config.php');
37
+ if (array_key_exists('$name ', \$ config)) {
38
+ die(\$ config['$name ']);
39
+ }
40
+ "
41
+ }
42
+
43
+ getConfigParam () {
44
+ local name=" $1 "
45
+
46
+ php -r "
47
+ require_once('$DOCUMENT_ROOT /bootstrap.php');
48
+
49
+ \$ app = new \Espo\Core\Application();
50
+ \$ config = \$ app->getContainer()->get('config');
51
+
52
+ echo \$ config->get('$name ');
53
+ "
54
+ }
55
+
56
+ # Bool: saveConfigParam "jobRunInParallel" "true"
57
+ # String: saveConfigParam "language" "'en_US'"
58
+ saveConfigParam () {
59
+ local name=" $1 "
60
+ local value=" $2 "
61
+
62
+ php -r "
63
+ require_once('$DOCUMENT_ROOT /bootstrap.php');
64
+
65
+ \$ app = new \Espo\Core\Application();
66
+ \$ config = \$ app->getContainer()->get('config');
67
+
68
+ if (\$ config->get('$name ') !== $value ) {
69
+ \$ config->set('$name ', $value );
70
+ \$ config->save();
71
+ }
72
+ "
73
+ }
74
+
75
+ applyConfigEnvironments () {
76
+ local envName
77
+ local envValue
78
+ local configParamName
79
+ local configParamValue
80
+
81
+ compgen -v | while read -r envName; do
82
+
83
+ if [[ $envName == " $configPrefix " * ]]; then
84
+
85
+ envValue=" ${! envName} "
86
+
87
+ configParamName=$( normalizeConfigParamName " $envName " )
88
+ configParamValue=$( normalizeConfigParamValue " $envValue " )
89
+
90
+ saveConfigParam " $configParamName " " $configParamValue "
91
+
92
+ fi
93
+
94
+ done
95
+ }
96
+
97
+ isQuoteValue () {
98
+ local value=" $1 "
99
+
100
+ php -r "
101
+ echo isQuote('$value ');
102
+
103
+ function isQuote (\$ value) {
104
+ \$ value = trim(\$ value);
105
+
106
+ if (\$ value === '0') {
107
+ return false;
108
+ }
109
+
110
+ if (empty(\$ value)) {
111
+ return true;
112
+ }
113
+
114
+ if (!preg_match('/[^0-9.]+/', \$ value)) {
115
+ return false;
116
+ }
117
+
118
+ if (in_array(\$ value, ['null', '1'], true)) {
119
+ return false;
120
+ }
121
+
122
+ if (in_array(\$ value, ['true', 'false'])) {
123
+ return false;
124
+ }
125
+
126
+ return true;
127
+ }
128
+ "
129
+ }
130
+
131
+ normalizeConfigParamName () {
132
+ local value=" $1 "
133
+
134
+ php -r "
135
+ \$ value = str_ireplace('$configPrefix ', '', '$value ');
136
+ \$ value = strtolower(\$ value);
137
+
138
+ \$ value = preg_replace_callback(
139
+ '/_([a-zA-Z])/',
140
+ function (\$ matches) {
141
+ return strtoupper(\$ matches[1]);
142
+ },
143
+ \$ value
144
+ );
145
+
146
+ echo \$ value;
147
+ "
148
+ }
149
+
150
+ normalizeConfigParamValue () {
151
+ local value=${1// \' / \\\' }
152
+
153
+ local isQuoteValue=$( isQuoteValue " $value " )
154
+
155
+ if [ -n " $isQuoteValue " ] && [ " $isQuoteValue " = 1 ]; then
156
+ echo " '$value '"
157
+ return
158
+ fi
159
+
160
+ echo " $value "
161
+ }
162
+ # END: entrypoint-utils.sh
163
+
164
+ applyConfigEnvironments
165
+
5
166
/usr/local/bin/php /var/www/html/daemon.php
6
167
7
168
exec " $@ "
0 commit comments