#
# check_Landscape_Files [--short|--quiet]
#
# get all files (including direcories)
#

quiet=0
short=0
rc=0

rpm_list="Landscape Landscape-challenge Landscape-webserver"

function usage() {
    echo "usage: $0 [--short] [--quiet] [--help]
    "
}

while [ $# -gt 0 ]; do
    case "$1" in
        --short ) short=1
                  ;;
        --quiet ) quiet=1
                  ;;
        --help ) usage
                  exit 1
                  ;;
    esac
    shift
done
if [ $quiet -eq 1 ]; then
    exec 1>/dev/null
    exec 2>/dev/null
fi
all_landscape_rpm_files=$(rpm -ql ${rpm_list})

#
# now lets 'filter' on directories only
#
for rpm_file in $all_landscape_rpm_files; do
    if [ -d $rpm_file ]; then
        if [ $short -eq 0 ]; then
            case "$rpm_file" in
                /var/lib/Landscape/media/SAP-media | \
                /var/lib/Landscape/media/SUSE-media ) 
                    ;;
                * )
                    all_landscape_rpm_dirs="$all_landscape_rpm_dirs $rpm_file"
                    ;;
            esac
        else
            case "$rpm_file" in
                /var/lib/Landscape/media/SAP-media | \
                /var/lib/Landscape/media/SUSE-media | \
                /var/lib/Landscape | \
                /var/lib/Landscape/* | \
                /etc/Landscape.d ) 
                    ;;
                * )
                    all_landscape_rpm_dirs="$all_landscape_rpm_dirs $rpm_file"
                    ;;
            esac
        fi
    fi
done

#
# list of files which are in a Landscape Package Directory but *not* part of a package
#
new_files=$(find $all_landscape_rpm_dirs -maxdepth 1 -type f -not -exec rpm -qf {} \; -not -name "*.backup.$(date +%F)" -print  2>/dev/null | grep '^/')

#
# List of modified files
#

modified_files=$(rpm -V ${rpm_list} | awk '$1 != "missing" {print $2}' | grep '^/')
deleted_files=$(rpm -V ${rpm_list} | awk '$1 == "missing" {print $2}' | grep '^/')

if [ -n "$new_files" ]; then
    rc=1
    echo "New files:"
    for nF in $new_files; do
        echo -n "$nF"
        if [ -f "$nF.backup.$(date +%F)" ]; then
            echo -n " (backup available)"
        fi
        echo
    done
fi

if [ -n "$modified_files" ]; then
    rc=1
    echo "Modified files:"
    for nF in $modified_files; do
        echo -n "$nF"
        if [ -f "$nF.backup.$(date +%F)" ]; then
            echo -n " (backup available)"
        fi
        echo
    done
fi

if [ -n "$deleted_files" ]; then
    rc=1
    echo "Deleted files:"
    for nF in $deleted_files; do
        echo -n "$nF"
        #if [ -f "$nF.backup.$(date +%F)" ]; then
        #    echo -n " (backup available)"
        #fi
        echo
    done
fi

exit $rc
