annotate etc/periodic/daily/720.local-triggered-action @ 401:d2796c709dcf

Make the list of existing trigger files available to conditions and actions
author Franz Glasner <fzglas.hg@dom66.de>
date Sat, 25 Feb 2023 15:17:38 +0100
parents 357887df56f5
children 8c7f686ef66f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 #!/bin/sh
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2 # -*- indent-tabs-mode: nil; -*-
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
3 #
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
4 # @(#)@@SIMPLEVERSIONTAG@@
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
5 #
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
6 # Weekly script to handle actions triggered by newly existing files.
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
7 # This is e.g. convenient to notify a running daemon to reload because
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
8 # of renewed certificates.
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
9 #
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
10
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
11 # If there is a global system configuration file, suck it in.
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
12 if [ -r /etc/defaults/periodic.conf ]
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13 then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14 . /etc/defaults/periodic.conf
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
15 source_periodic_confs
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
16 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
18 # Set it to "YES" to enable this script
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
19 : ${daily_local_triggered_action_enable:=NO}
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
20 # The readability of any of the given files triggers the action
393
d83f877d7849 Variables that are set but empty need not to set again to a default empty value
Franz Glasner <fzglas.hg@dom66.de>
parents: 391
diff changeset
21 : ${daily_local_triggered_action_files=}
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
22 #
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
23 # A condition to check also before executing an action.
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
24 #
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
25 # May be a Shell pipeline.
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
26 # E.g. "service nginx onestatus || service apache2 onestatus"
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
27 #
393
d83f877d7849 Variables that are set but empty need not to set again to a default empty value
Franz Glasner <fzglas.hg@dom66.de>
parents: 391
diff changeset
28 : ${daily_local_triggered_action_condition=}
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
29 #
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
30 # The action to execute.
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
31 #
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
32 # May be a Shell pipeline.
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
33 # E.g. "{ service nginx onereload && service apache2 onereload ; } || true"
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
34 #
393
d83f877d7849 Variables that are set but empty need not to set again to a default empty value
Franz Glasner <fzglas.hg@dom66.de>
parents: 391
diff changeset
35 : ${daily_local_triggered_action_action=}
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
36 #
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
37 # By default all files triggering the action are removed. Set to "NO" if
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
38 # the files should remain.
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
39 #
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
40 : ${daily_local_triggered_action_files_remove:=YES}
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
41 #
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
42 # If profiles are defined this script is re-executed once for for every
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
43 # profile with the profile as parameter.
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
44 # No global options above besides "daily_local_triggered_action_enable" are
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
45 # used.
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
46 # Instead profile level configurations are named
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
47 # daily_local_triggered_action_<profile>_<option> .
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
48 #
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
49 : ${daily_local_triggered_action_profiles=}
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
50
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
51
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
52 #:
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
53 #: Check whether a given profile is defined in the configuration
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
54 #:
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
55 #: Args:
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
56 #: $1: The profile to check for
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
57 #:
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
58 #: Returns:
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
59 #: 0: If the profile is found
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
60 #: 1: If the profile is not found
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
61 #:
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
62 _is_profile() {
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
63 local prof
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
64
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
65 for prof in ${daily_local_triggered_action_profiles}; do
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
66 if [ "${prof}" = "$1" ]; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
67 return 0
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
68 fi
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
69 done
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
70 return 1
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
71 }
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
72
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
73
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
74 rc=0
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
75
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
76 if [ -n "${daily_local_triggered_action_profiles}" ]; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
77 if [ $# -eq 1 ]; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
78 profile="$1"
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
79 if ! _is_profile "${profile}"; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
80 echo "ERROR: no such profile: ${profile}" 1>&2
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
81 exit 1
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
82 fi
399
7dcf2ae34350 Map some extra characters in profile names to the underscore for proper Shell variable naming
Franz Glasner <fzglas.hg@dom66.de>
parents: 394
diff changeset
83 profilevar="$(echo -n "${profile}" | /usr/bin/tr -- '-:.@/$*+~=!()|' '_')"
400
357887df56f5 More thorough quoting of variable evaluation for profile processing
Franz Glasner <fzglas.hg@dom66.de>
parents: 399
diff changeset
84 eval daily_local_triggered_action_files="\"\${daily_local_triggered_action_${profilevar}_files-}\""
357887df56f5 More thorough quoting of variable evaluation for profile processing
Franz Glasner <fzglas.hg@dom66.de>
parents: 399
diff changeset
85 eval daily_local_triggered_action_condition="\"\${daily_local_triggered_action_${profilevar}_condition-}\""
357887df56f5 More thorough quoting of variable evaluation for profile processing
Franz Glasner <fzglas.hg@dom66.de>
parents: 399
diff changeset
86 eval daily_local_triggered_action_action="\"\${daily_local_triggered_action_${profilevar}_action-}\""
399
7dcf2ae34350 Map some extra characters in profile names to the underscore for proper Shell variable naming
Franz Glasner <fzglas.hg@dom66.de>
parents: 394
diff changeset
87 eval daily_local_triggered_action_files_remove="\${daily_local_triggered_action_${profilevar}_files_remove:-YES}"
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
88 elif [ $# -gt 1 ]; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
89 echo "ERROR: usage" 1>&2
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
90 exit 1
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
91 else
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
92 for _p in ${daily_local_triggered_action_profiles} ; do
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
93 # Re-execute with profile
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
94 $0 "${_p}"
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
95 _tmprc=$?
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
96 if [ ${_tmprc} -ne 0 ]; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
97 rc=${_tmprc}
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
98 fi
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
99 done
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
100 exit ${rc}
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
101 fi
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
102 fi
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
103
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
104 case "${daily_local_triggered_action_enable}" in
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
105 [Yy][Ee][Ss])
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
106 if [ -z "${profile}" ]; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
107 profilestr=
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
108 else
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
109 profilestr=" (${profile})"
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
110 fi
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
111
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
112 echo
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
113 echo "Testing for newly triggered action${profilestr}"
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
114
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
115 _do_action=""
401
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
116 TRIGGER_FILES=""
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
117
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
118 for _f in ${daily_local_triggered_action_files}; do
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
119 if [ -r "${_f}" ]; then
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
120 _do_action="yes"
401
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
121 TRIGGER_FILES="${TRIGGER_FILES} ${_f}"
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
122 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
123 done
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
124
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
125 if [ "${_do_action}" = "yes" ]; then
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
126 if [ -z "${daily_local_triggered_action_action}" ]; then
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
127 echo "ERROR: no action defined${profilestr}" 1>&2
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
128 exit 2
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
129 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
130
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
131 echo "Executing action because valid trigger found${profilestr}"
391
8b1740deedbb Refactor: Renamed the weekly 800.local-certbot-post-deploy to a daily 720.local-triggered-action.
Franz Glasner <fzglas.hg@dom66.de>
parents: 387
diff changeset
132 if [ -n "${daily_local_triggered_action_condition}" ]; then
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
133 eval ${daily_local_triggered_action_condition}
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
134 _tmprc=$?
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
135 if [ ${_tmprc} -eq 0 ]; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
136 eval ${daily_local_triggered_action_action}
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
137 rc=$?
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
138 if [ ${rc} -ne 0 ] ; then
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
139 echo "ERROR: Action failed${profilestr}" 1>&2
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
140 fi
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
141 else
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
142 rc=1
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
143 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
144 else
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
145 eval ${daily_local_triggered_action_action}
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
146 rc=$?
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
147 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
148
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
149 # Remove trigger files if configured to do so
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
150 if [ ${rc} -eq 0 ]; then
401
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
151 case "${daily_local_triggered_action_files_remove}" in
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
152 [Yy][Ee][Ss])
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
153 echo "Removing trigger files${profilestr} ..."
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
154 for _rf in ${TRIGGER_FILES}; do
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
155 rm -fv "${_rf}"
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
156 done
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
157 ;;
d2796c709dcf Make the list of existing trigger files available to conditions and actions
Franz Glasner <fzglas.hg@dom66.de>
parents: 400
diff changeset
158 esac
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
159 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
160 else
394
7c597ee2c8d9 Implement profile support for the daily script 720.local-triggered-action
Franz Glasner <fzglas.hg@dom66.de>
parents: 393
diff changeset
161 echo "No action triggers found${profilestr}"
387
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
162 fi
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
163 ;;
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
164 *)
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
165 rc=0
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
166 ;;
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
167 esac
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
168
9921352225a9 Weekly periodic script to execute an action when any of given files are readable.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
169 exit ${rc}