forked from lobbywatch/lobbywatch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathafterburner.sh
executable file
·339 lines (301 loc) · 23.5 KB
/
afterburner.sh
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
#!/bin/bash
# Abort on errors
set -e
# diff -urw --exclude=".git" --exclude="*.bak" ../lobbydev_wo_afterburner/ . > afterburner_changes.diff
# TODO use \ only where necessary http://stackoverflow.com/questions/1455988/commenting-in-bash-script
clean=true
minify=true
# Ref: http://stackoverflow.com/questions/7069682/how-to-get-arguments-with-flags-in-bash-script
for i in "$@" ; do
case $i in
-h|--help)
echo "afterburner"
echo " "
echo "$0 [options]"
echo " "
echo "options:"
echo "-N, --noclean Do not clean files"
echo "-M, --nojsminify Disable js minify"
exit 0
;;
-N|--noclean)
shift
clean=false
;;
-M|--nominify)
shift
minify=false
;;
*)
break
;;
esac
done
root_dir=public_html
dir=$root_dir/bearbeitung
auswertung=$root_dir/auswertung
NOW=$(date +"%d.%m.%Y %H:%M");
NOW_SHORT=$(date +"%d.%m.%Y");
echo -e "<?php\n// Generated file\n\$build_date = '$NOW';\n\$build_date_short = '$NOW_SHORT';\n\$build_last_commit = '`git rev-parse HEAD`';" > $root_dir/custom/build.php;
./set_lobbywatch_version.sh $root_dir
rm -rf $dir/templates_c/*
# MIGR encoding problem with String.php
if $clean ; then
echo "Clean files..."
files=$(find $dir -name "*.php" && find $dir -name "*.js" && find $dir -name "*.tpl" && find $dir -name "*.css");
echo $(echo "$files" | wc -l) files
for file in $files
do
if [[ "$file" == "public_html/bearbeitung/libs/phpoffice/PHPExcel/Shared/String.php" ]] || [[ "$file" == "public_html/bearbeitung/libs/phpspreadsheet/phpoffice/phpspreadsheet/src/PhpSpreadsheet/Shared/StringHelper.php" ]]; then
echo "Skip $file"
continue
fi
# echo "Clean $file";
file_bak="$file.bak"
mv "$file" "$file_bak";
# Read file, process regex and write file
(cat "$file_bak"; echo -e "\n") |
dos2unix |
perl -0 -p -e's/(\s*\?>\s*)$/\n/s' |
perl -0 -p -e's/\s*$/\n/s' \
> "$file" \
&& rm "$file_bak"
# size=$(wc -c <$file)
# if (( size < 3 )); then
# echo "Empty file: $file"
# fi
done
fi
for file in $dir/*.php
do
if [[ $file != public_html/bearbeitung/parlamentarier_anhang.php ]] && [[ $file != public_html/bearbeitung/parlamentarier_transparenz.php ]] && ( [[ $file == public_html/bearbeitung/parlamentarier_*.php ]] || [[ $file == public_html/bearbeitung/anteil.php ]] ); then
echo "Skip $file"
continue
fi
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
# MIGR add_more_navigation_links(\$result); see inside
cat "$file.bak" |
perl -p -e's/\$editColumn->SetAllowSetToDefault\(true\);/\$editColumn->SetAllowSetToDefault(false); \/*afterburner*\/ /g' |
perl -p -e's/^(\s*)(GetApplication\(\)->SetMainPage\(\$Page\);)/\1\2\n\1before_render\(\$Page\); \/*afterburner*\/ /' |
perl -p -e's/CanLoginAsGuest\(\)\s*\{\s*return true;\s*\}/CanLoginAsGuest\(\) \{ return false; \/*afterburner*\/ \}/g' |
perl -p -e's/'\''guest'\''\s*=>\s*new\s+DataSourceSecurityInfo\(\s*true/'\''guest'\'' => new DataSourceSecurityInfo\(GetApplication\(\)->GetOperation\(\) === '\''rss'\'' \/*afterburner*\/ /g' |
perl -0 -p -e's/(?<=CreateRssGenerator\(\)).*?(?=\})/ \{\n return setupRSS\(\$this, \$this->dataset\); \/*afterburner*\/ \n /sg' |
perl -p -e's/\$env_dir/'\'' \. \$GLOBALS["env_dir"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$env(?!_dir)/'\'' \. \$GLOBALS["env"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$rel_files_url/'\'' \. \$GLOBALS["rel_files_url"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$public_files_dir_rel/'\'' \. \$GLOBALS["public_files_dir_rel"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$public_files_dir_abs/'\'' \. \$GLOBALS["public_files_dir_abs"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$public_files_dir/'\'' \. \$GLOBALS["public_files_dir"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$private_files_dir/'\'' \. \$GLOBALS["private_files_dir"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$build_date:/'\'' \. \$GLOBALS["build_date"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$build_date/'\'' \. \$GLOBALS["build_date"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$build_date_short/'\'' \. \$GLOBALS["build_date_short"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$deploy_date:/'\'' \. \$GLOBALS["deploy_date"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$deploy_date/'\'' \. \$GLOBALS["deploy_date"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$deploy_date_short/'\'' \. \$GLOBALS["deploy_date_short"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$import_date_wsparlamentch/'\'' \. \$GLOBALS["import_date_wsparlamentch"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$import_date_wsparlamentch_short/'\'' \. \$GLOBALS["import_date_wsparlamentch_short"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$build_secs/'\'' \. _custom_page_build_secs() \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$version/'\'' \. \$GLOBALS["version"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$edit_general_hint/'\'' \. \$GLOBALS["edit_general_hint"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's/\$edit_header_message/'\'' \. \$GLOBALS["edit_header_message"] \/*afterburner*\/ \. '\''/g' |
perl -p -e's%'\''\[getCustomPagesHeader\(\)\]'\''%getCustomPagesHeader\(\)%g' |
perl -p -e's%'\''\[getCustomPagesFooter\(\)\]'\''%getCustomPagesFooter\(\)%g' |
perl -p -e's/<a id="plugin-edit-remarksbox.*?<\/a>//g' |
perl -p -e's/<img src="img\/icons\/external_link.gif" alt="\(externer Link\)" title="\(externer Link\)" class="icon" height="14" width="15">//g' |
perl -p -e's/<img src="img\/icons\/external_link.gif" alt="\(externer Link\)" title="\(externer Link\)" class="icon" width="15" height="14">//g' |
perl -p -e's%(src=")([^"]+)"%\1'\'' . util_data_uri('\''\2'\'') . '\''"%g' |
perl -p -e's/(^\s*)(\$result->AddPage\(new PageLink\(\$this->GetLocalizerCaptions\(\)->GetMessageString\('\''AdminPage'\''\), '\''phpgen_admin.php'\'', \$this->GetLocalizerCaptions\(\)->GetMessageString\('\''AdminPage'\''\), false, false, '\''Admin area'\''\)\);)/\1\2\n\1\}\n\n \/\/ MIGR add_more_navigation_links(\$result); \/\/ Afterburned\n\1\{/g' |
perl -p -e's/(DownloadHTTPHandler\(\$this->dataset, '\''(datei)'\'')/PrivateFile\1/g' |
perl -p -e"s/\{\[\[YEAR\]\]\}/' . date('Y') . '/g" |
perl -p -e"s/\{\[\[YEAR-1\]\]\}/' . (date('Y') - 1) . '/g" |
perl -p -e"s/\{\[\[YEAR-2\]\]\}/' . (date('Y') - 2) . '/g" |
perl -p -e's%(\s*)\$editor = new TextAreaEdit\('\''notizen_edit'\'', \d+, \d+\);%$&\n$1\$editor->setPlaceholder\(getNotizenPlaceholder\(\)\); \/\/ Afterburned%g' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\n/' \
> "$file";
done
for file in $dir/components/page/page.php
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -p -e's/(case OPERATION_DELETE_SELECTED:)/\1\n case OPERATION_INPUT_FINISHED_SELECTED: \/\/ Afterburner\n case OPERATION_DE_INPUT_FINISHED_SELECTED: \/\/ Afterburner\n case OPERATION_CONTROLLED_SELECTED: \/\/ Afterburner\n case OPERATION_DE_CONTROLLED_SELECTED: \/\/ Afterburner\n case OPERATION_AUTHORIZATION_SENT_SELECTED: \/\/ Afterburner\n case OPERATION_DE_AUTHORIZATION_SENT_SELECTED: \/\/ Afterburner\n case OPERATION_AUTHORIZATION_REMINDER_SENT_SELECTED: \/\/ Afterburner\n case OPERATION_DE_AUTHORIZATION_REMINDER_SENT_SELECTED: \/\/ Afterburner\n case OPERATION_AUTHORIZE_SELECTED: \/\/ Afterburner\n case OPERATION_DE_AUTHORIZE_SELECTED: \/\/ Afterburner\n case OPERATION_RELEASE_SELECTED: \/\/ Afterburner\n case OPERATION_DE_RELEASE_SELECTED: \/\/ Afterburner/' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh/' \
> "$file";
done
for file in $dir/components/grid/grid_states/abstract_grid_state.php
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -p -e's%^(\s*)(if \(!isset\(\$oldValues\[\$fieldName\]\) \|\| \(\$oldValues\[\$fieldName\] != \$fieldValue\)\))%\1if ((\$oldValues[\$fieldName] ?? null) != \$fieldValue) // Processed by afterburner.sh\n\1// \2 // Processed by afterburner.sh%' \
> "$file";
done
for file in $dir/components/grid/grid.php
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -p -e's|('\''/grid_states/grid_states.php'\'';\s*)$|\1require_once dirname\(__FILE__\) . "/../../../custom/custom_grid_states.php"; // Processed by afterburner.sh\n|' |
perl -p -e's%^((\s*)OPERATION_DELETE_SELECTED => '\''DeleteSelectedGridState'\'',)%\1\n\2OPERATION_INPUT_FINISHED_SELECTED => '\''InputFinishedSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_DE_INPUT_FINISHED_SELECTED => '\''DeInputFinishedSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_CONTROLLED_SELECTED => '\''ControlledSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_DE_CONTROLLED_SELECTED => '\''DeControlledSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_AUTHORIZATION_SENT_SELECTED => '\''AuthorizationSentSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_DE_AUTHORIZATION_SENT_SELECTED => '\''DeAuthorizationSentSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_AUTHORIZATION_REMINDER_SENT_SELECTED => '\''AuthorizationReminderSentSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_DE_AUTHORIZATION_REMINDER_SENT_SELECTED => '\''DeAuthorizationReminderSentSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_AUTHORIZE_SELECTED => '\''AuthorizeSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_DE_AUTHORIZE_SELECTED => '\''DeAuthorizeSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_RELEASE_SELECTED => '\''ReleaseSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_DE_RELEASE_SELECTED => '\''DeReleaseSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_SET_IMRATBIS_SELECTED => '\''SetImRatBisSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_CLEAR_IMRATBIS_SELECTED => '\''ClearImRatBisSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_SET_EHRENAMTLICH_SELECTED => '\''SetEhrenamtlichSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_SET_ZAHLEND_SELECTED => '\''SetZahlendSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_SET_BEZAHLT_SELECTED => '\''SetBezahltSelectedGridState'\'', \/\/ Afterburner\n\2OPERATION_CREATE_VERGUETUNGSTRANSPARENZLISTE => '\''CreateVerguetungstransparenzliste'\'', \/\/ Afterburner\n\2OPERATION_COPY_INTERESSENBINDUNGSVERGUETUNGEN => '\''CopyInteressenbindungsverguetungen'\'', \/\/ Afterburner%' |
perl -p -e's/(function GetAllowDeleteSelected)/function GetAllowInputFinishedSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n \$datasetName = preg_replace('\''\/[`]\/i'\'', '\'''\'', \$this->GetDataset()->GetName()); \/\/ Afterburner\n return (\$this->getMultiEditAllowed()) && is_column_present(\$columns,'\''eingabe_abgeschlossen_datum'\'') && is_column_present(\$columns,'\''eingabe_abgeschlossen_visa'\''); \/\/ Afterburner\n }\n\n function GetAllowControlledSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n \$datasetName = preg_replace('\''\/[`]\/i'\'', '\'''\'', \$this->GetDataset()->GetName()); \/\/ Afterburner\n return (\$this->getMultiEditAllowed()) && is_column_present(\$columns,'\''kontrolliert_datum'\'') && is_column_present(\$columns,'\''kontrolliert_visa'\'') && isFullWorkflowUser(); \/\/ Afterburner\n }\n\n function GetAllowAuthorizationSentSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n return \$this->getMultiEditAllowed() && is_column_present(\$columns,'\''autorisierung_verschickt_datum'\'') && is_column_present(\$columns,'\''autorisierung_verschickt_visa'\'') && isFullWorkflowUser(); \/\/ Afterburner\n }\n\n function GetAllowAuthorizeSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n return \$this->getMultiEditAllowed() && is_column_present(\$columns,'\''autorisiert_datum'\'') && is_column_present(\$columns,'\''autorisiert_visa'\'') \/* && is_column_present(\$columns,'\''autorisierung_verschickt_datum'\'') && isFullWorkflowUser() *\/; \/\/ Afterburner\n }\n\n function GetAllowReleaseSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns();\n \$datasetName = preg_replace('\''\/[`]\/i'\'', '\'''\'', \$this->GetDataset()->GetName()); \/\/ Afterburner\n return (\$this->getMultiEditAllowed()) && is_column_present(\$columns,'\''freigabe_datum'\'') && is_column_present(\$columns,'\''freigabe_visa'\'') && isFullWorkflowUser(); \/\/ Afterburner\n }\n\n function GetAllowImRatBisSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns();\n return \$this->getMultiEditAllowed() && is_column_present(\$columns,'\''im_rat_bis'\''); \/\/ Afterburner\n }\n\n function GetAllowEhrenamtlichSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n \$datasetName = preg_replace('\''\/[`]\/i'\'', '\'''\'', \$this->GetDataset()->GetName()); \/\/ Afterburner\n return \$this->getMultiEditAllowed() && (ends_with(\$datasetName, "interessenbindung") || ends_with(\$datasetName, "mandat")); \/\/ Afterburner\n }\n\n function GetAllowBezahltSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n \$datasetName = preg_replace('\''\/[`]\/i'\'', '\'''\'', \$this->GetDataset()->GetName()); \/\/ Afterburner\n return \$this->getMultiEditAllowed() && (ends_with(\$datasetName, "interessenbindung") || ends_with(\$datasetName, "mandat")); \/\/ Afterburner\n }\n\n function GetAllowZahlendSelected() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n \$datasetName = preg_replace('\''\/[`]\/i'\'', '\'''\'', \$this->GetDataset()->GetName()); \/\/ Afterburner\n return \$this->getMultiEditAllowed() && (ends_with(\$datasetName, "interessenbindung") || ends_with(\$datasetName, "mandat")); \/\/ Afterburner\n }\n\n function GetAllowCreateVerguetungstransparenzliste() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n \$datasetName = preg_replace('\''\/[`]\/i'\'', '\'''\'', \$this->GetDataset()->GetName()); \/\/ Afterburner\n return \$this->getMultiEditAllowed() && (\$datasetName == "parlamentarier"); \/\/ Afterburner\n }\n\n function GetAllowCopyInteressenbindungsverguetungen() { \/\/ Afterburner\n \$columns = \$this->GetEditColumns(); \/\/ Afterburner\n \$datasetName = preg_replace('\''\/[`]\/i'\'', '\'''\'', \$this->GetDataset()->GetName()); \/\/ Afterburner\n return \$this->getMultiEditAllowed() && (ends_with(\$datasetName, "interessenbindung_jahr")); \/\/ Afterburner\n }\n\n \1/' |
perl -p -e's%('\''RefreshButton'\'' => \$this->GetShowUpdateLink\(\),)%\1\n '\''InputFinishedSelectedButton'\'' => \$this->GetAllowInputFinishedSelected(), \/\/ Afterburner\n '\''ControlledSelectedButton'\'' => \$this->GetAllowControlledSelected(), \/\/ Afterburner\n '\''AuthorizationSentSelectedButton'\'' => \$this->GetAllowAuthorizationSentSelected(), \/\/ Afterburner\n '\''AuthorizeSelectedButton'\'' => \$this->GetAllowAuthorizeSelected(), \/\/ Afterburner\n '\''ReleaseSelectedButton'\'' => \$this->GetAllowReleaseSelected(), \/\/ Afterburner\n '\''ImRatBisSelectedButton'\'' => \$this->GetAllowImRatBisSelected(), \/\/ Afterburner\n '\''EhrenamtlichSelectedButton'\'' => \$this->GetAllowEhrenamtlichSelected(), \/\/ Afterburner\n '\''BezahltSelectedButton'\'' => \$this->GetAllowBezahltSelected(), \/\/ Afterburner\n '\''ZahlendSelectedButton'\'' => \$this->GetAllowZahlendSelected(), \/\/ Afterburner\n '\''CreateVerguetungstransparenzListButton'\'' => \$this->GetAllowCreateVerguetungstransparenzliste(), \/\/ Afterburner\n '\''CopyInteressenbindungsverguetungenButton'\'' => \$this->GetAllowCopyInteressenbindungsverguetungen(), \/\/ Afterburner\n%' |
perl -0 -p -e's|(private function getFilterDataFromGlobals\(SuperGlobals \$superGlobals, \$id, \$default = null\)\n\s*\{)|\1\n \$favorite_filter = getFilterDataFromGlobals_handleFavoriteFilters(\$this, \$superGlobals, \$id, \$default); // Processed by afterburner.sh
if (\$favorite_filter) return \$favorite_filter; // Processed by afterburner.sh|' |
perl -p -e's|(\$cellCssStyles = '\'''\'';)|\$cellCssStyles = \[\]; // Processed by afterburner.sh|' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\n/' \
> "$file";
done
for file in $dir/components/editors/text.php
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -0 -p -e's%public function getEditorName\(\).*\{.*return '\''text'\'';.*?\}%public function getEditorName\(\)\n \{\n return '\''../custom_templates/editors/text'\''; \/\/ Afterburner\n \}%s' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\n/' \
> "$file";
done
for file in $dir/components/js/pgui.grid.js
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -p -e's%('\''pgui.selection-handler'\'',)%// \1 // Afterburner\n '\''custom/pgui.selection-handler.ops'\'', // Afterburner%' \
> "$file";
done
for file in $dir/components/js/main.js
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -p -e's%(\s*)('\''|")(bootstrap)\2,%\1\2\3\2,\n\1\2custom/custom-require\2, // Afterburner%' \
> "$file";
done
for file in $dir/components/js/pgui.editors.js
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -p -e's%(\s*)(var editorName = \$item\.data\('\''editor'\''\);)%\1\2\n\1editorName = editorName.replace(/\\.\\.\\/custom_templates\\/editors\\//, '\'''\''); // Afterburner%' |
perl -p -e's%(\s*)(return editorNames\[name\];)%\1var editorName = name.replace(/\\.\\.\\/custom_templates\\/editors\\//, '\'''\''); // Afterburner\n\1return editorNames[editorName]; // Afterburner%' \
> "$file";
done
for file in $dir/components/rss_feed_generator.php
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -p -e's/StringUtils::EscapeXmlString/htmlspecialchars/' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\n/' \
> "$file";
done
for file in $dir/components/renderers/rss_renderer.php
do
echo "Process $file";
mv "$file" "$file.bak";
# Read file, process regex and write file
cat "$file.bak" |
perl -p -e's/(?<=GetRssGenerator\(\);)/\n header\("Content-Type: application\/rss+xml;charset= utf-8 "\);/' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\n/' \
> "$file";
done
if ! $minify; then
minifyDisablePattern='s%(UseMinifiedJS\(\)\n\{\n return )true%\1false%s'
else
minifyDisablePattern='s%not_existing_value_182734078450238475029347850237845295%%'
fi
for file in $dir/phpgen_settings.php
do
echo "Process $file";
mv "$file" "$file.bak";
cat "$file.bak" |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\nrequire_once dirname(__FILE__) . "\/..\/settings\/settings.php";\nrequire_once dirname(__FILE__) . "\/\.\.\/custom\/custom.php";\nrequire_once dirname(__FILE__) . "\/..\/custom\/build.php";\nrequire_once dirname(__FILE__) . "\/..\/common\/utils.php";/' |
perl -0 -p -e's/(?<=GetGlobalConnectionOptions\(\)).*?(?=\})/\{\n \/\/ Custom modification: Use \$db_connection from settings.php\n global \$db_connection;\n return \$db_connection;\n/s' |
perl -0 -p -e"$minifyDisablePattern" |
perl -p -e's/(\/\/\s*?)(?=defineXXX)//' |
perl -p -e's/(\/\/\s*?)(?=error_reportingXXX)//' |
perl -p -e's/(\/\/\s*?)(?=ini_setXXX)//' |
perl -p -e's/(SystemUtils::SetTimeZoneIfNeed)\('\''[^'\'']+'\''\);/\1\('\''Europe\/Zurich'\''\);/' |
perl -p -e's/^(function GetPageInfos\(\))/\1 { \/\/ Afterburned\n \$pageInfos = generatedGetPageInfos\(\); \/\/ Afterburned\n \$pageInfos = customGetPageInfos\(\$pageInfos\); \/\/ Afterburned\n return \$pageInfos\; \/\/ Afterburned\n}\n\nfunction generatedGetPageInfos\(\) \/\/ Afterburned/g' \
> "$file";
done
for file in $dir/components/security/user_self_management.php
do
echo "Process $file";
mv "$file" "$file.bak";
cat "$file.bak" |
perl -p -e's/^((\s*)\$this->ChangePassword\(\$newPassword\);)$/\2checkPasswordStrength(\$newPassword); \/\/ Afterburned\n\1/' \
> "$file";
done
for file in $dir/components/security/user_management_request_handler.php
do
echo "Process $file";
mv "$file" "$file.bak";
cat "$file.bak" |
perl -p -e's/^((\s*)return array\('\''id'\'' => \$userId, '\''name'\'' => \$userName, '\''password'\'' => '\''\*\*\*\*\*\*'\''\);)$/\n\2\$userId = \$userId == null || \$userId == '\'''\'' ? getDBConnection()->ExecScalarSQL('\''SELECT MAX(id) FROM user;'\'') : \$userId; \/\/ Afterburned\n\n\1\n/' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\n/' \
> "$file";
done
for file in $dir/database_engine/mysql_engine.php $dir/database_engine/commands.php
do
echo "Process $file";
mv "$file" "$file.bak";
cat "$file.bak" |
perl -p -e's/'\''UPPER\(%s\) LIKE UPPER\(%s\)'\''/'\''%s LIKE %s'\'' \/*afterburner: default is case insensitive (utf8mb4_unicode_ci), no need for UPPER function which stops indexes in MySQL*\//' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\n/' \
> "$file";
done
for file in $dir/components/grid/columns/blob_image_view_column.php
do
echo "Process $file";
mv "$file" "$file.bak";
cat "$file.bak" |
perl -p -e's%\$enablePictureZoom = true, \$handlerName\)%\$enablePictureZoom = true, \$handlerName = null)%' |
perl -p -e's/(<\?php)/\1\n\/\/ Processed by afterburner.sh\n\n/' \
> "$file";
done
templates_dir=$dir/components/templates
all_tpl_files=`find $templates_dir -name "*.tpl"`;
for file in $all_tpl_files
do
if [[ $file == public_html/bearbeitung/components/templates/custom_templates/old/* ]]; then
echo "Skip $file"
continue
fi
echo "Process $file";
mv "$file" "$file.bak";
cat "$file.bak" |
perl -p -e's%('\''|")(forms/field_label.tpl)\1%\1custom_templates/\2\1%g' |
perl -p -e's%('\''|")(forms/form_footer.tpl)\1%\1custom_templates/\2\1%g' |
perl -p -e's%('\''|")(forms/actions_edit.tpl)\1%\1custom_templates/\2\1%g' |
perl -p -e's%('\''|")(list/grid_toolbar_selection_button.tpl)\1%\1custom_templates/\2\1%g' |
perl -p -e's%\{if \$id\}id="\{\$id\}"\{/if\}%{if \$id}id="{\$id}" {/if}%' |
perl -p -e's%('\''|")(list/grid_column_header.tpl)\1%\1custom_templates/\2\1%g' \
> "$file";
done
./gen_css.sh
./gen_js.sh
for file in lobbywatch_bearbeitung.pgtm
do
echo "Process $file";
cat "$file" |
perl -p -e's/(login\s*=\s*)".*?"/\1""/ig' |
perl -p -e's/( password\s*=\s*)".*?"/\1"hidden"/ig' |
perl -p -e's/(database\s*=\s*)".*?"/\1""/ig' \
> "lobbywatch_bearbeitung_public.pgtm";
done
git st
# Sed: http://www.grymoire.com/Unix/Sed.html
# Perl: http://petdance.com/perl/command-line-options.pdf
# ( Prog1; Prog2; Prog3; ... ) | ProgN
# ( Prog1 & Prog2 & Prog3 & ... ) | ProgN