#!/bin/bash # # # rhautoimport # # Copyright (C) 2009-2017 Christian Pointner # # This file is part of rhautoimport. # # rhautoimport is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version. # # rhautoimport is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with rhautoimport. If not, see . # if [ -z "$1" ]; then echo "rhautoimport [ arg1 [ arg2 ] ... ]" exit 1 fi if [ ! -x "/usr/bin/rhautoimport-$1" ]; then echo "unknown importer: $1" exit 2 fi LOG_FILE=`mktemp --tmpdir rhautoimport-XXXXXX.log` RESULT_FILE=`mktemp --tmpdir rhautoimport-XXXXXX.result` MAIL_TO=`sed 's/#.*//' /etc/rhautoimport/$1.mail 2> /dev/null | xargs` if [ -z "$MAIL_TO" ]; then MAIL_TO="root" fi ( /usr/bin/flock -x -w 10 200 /usr/bin/rhautoimport-$1 ${@:2} > $LOG_FILE 2>&1 3> $RESULT_FILE RETURN_CODE=$? TITLE="" WAS_LAST=0 idx=0 while IFS= read -r line; do case $idx in 0) TITLE=$line ;; 1) WAS_LAST=$line ;; *) break ;; esac idx=$((idx+1)) done < $RESULT_FILE rm -f $RESULT_FILE case $RETURN_CODE in 0) bsd-mailx -a "Content-Type: text/plain; charset=utf-8" -s "$TITLE - Imported Successfully" $MAIL_TO < $LOG_FILE ;; 23) bsd-mailx -a "Content-Type: text/plain; charset=utf-8" -s "$TITLE - Imported Successfully (partially failed - check log!)" $MAIL_TO < $LOG_FILE ;; 42) # do nothing - the script didn't import anything but no message should be sent ;; *) if [ $WAS_LAST -eq 1 ]; then subject="$TITLE - Import Error - last attempt!!!" else subject="$TITLE - Import Error - will retry" fi bsd-mailx -a "Content-Type: text/plain; charset=utf-8" -s "$subject" $MAIL_TO < $LOG_FILE ;; esac rm -f $LOG_FILE ) 200>/var/lock/rhautoimport-$1.lock exit 0