-
Notifications
You must be signed in to change notification settings - Fork 1
/
cron-prepare.sh.j2
29 lines (26 loc) · 1.13 KB
/
cron-prepare.sh.j2
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
{# This template is included by cron-main.sh.j2 #}
{% if backups_role_db_names %}
log "Postgres DB dump"
{# jinja comment.
Next non-comment line below should render to something like:
for DB in "main" "secondary" "test"; do
But a simple | join(' ') would render instead to:
for DB in main secondary test; do
Thus, we do join('" "'):
for DB in main" "secondary" "test; do
And add the missing double quotes as literals outside jinja's reach, like
"{{ … }}"
https://stackoverflow.com/a/49692186/3625897
#}
for DB in "{{ backups_role_db_names | join('" "') }}"; do
run /usr/bin/pg_dump --encoding=UTF8 "$DB" > "{{ backups_role_tmp_path }}/pg_dump_$DB"
done
{% endif %}
{% if backups_role_assets_paths %}
# This command below is meant to be executed by a very limited sudoer user.
# It must be allowed to only execute `tar -czvf *` as root,
# meaning that it can't uncompress, add options, or even change the options order.
# This is a way to give to this user read-only access to whole filesystem.
log "Compress assets data"
run sudo tar -czvf {{ backups_role_tmp_path }}/assets.tar.gz {{ backups_role_assets_paths|join(' ') }}
{% endif %}