From 1c4522180cb634cdac3bd88d16268532c2b66dda Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Mon, 25 Feb 2019 17:20:10 +0100 Subject: [PATCH] ensure that target folder exists, throw messages on error Signed-off-by: Arthur Schiwon --- store_data | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/store_data b/store_data index 88742b7..1f3bb42 100644 --- a/store_data +++ b/store_data @@ -19,6 +19,37 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +getarg() { # by Univention + local found=0 + for arg in "${ARGS[@]}"; do + if [ "$found" -eq 1 ]; then + echo "$arg" + break + fi + if [ "$arg" = "$1" ]; then + found=1 + fi + done +} +ERROR_FILE=$(getarg "--error-file") + +error_msg() { + if [ -n "$1" ]; then + IN="$@" + else + read IN # from stdin + fi + if [ -n "$ERROR_FILE" ]; then + echo "$IN" | tee -a "$ERROR_FILE" >&2 + else + echo "$IN" >&2 + fi +} + if [ -e "/var/www/html/config/config.php" ]; then - cp -Ra "/var/www/html/config" "$NC_PERMCONFDIR/" + if [ ! -d "$NC_PERMCONFDIR" ]; then + error_msg "Permanent data dir '$NC_PERMCONFDIR' did not exist, unexpectedly. Creating now." + mkdir -p "$NC_PERMCONFDIR" || (error_msg "Could not create directory"; exit 29) + fi + cp -Ra "/var/www/html/config" "$NC_PERMCONFDIR/" || (error_msg "Could not backup config file"; exit 30) fi