#!/usr/bin/env bash set -eu TMP1="/tmp/vdn-dir1" TMP2="/tmp/vdn-dir2" TMP="/tmp/vdn-dir" EXCLUDES="" synopsis() { cat << EOF Usage : `basename $0` [-h] dir1 dir2 EOF } help() { cat << EOF `basename $0` affiche les différences dans les archives des modifications. dir1 et dir2 doivent contenir les archives des modifications des systèmes. Exemple : `basename $0` ~/.vdn-0.7.bak/demo ~/.vdn-0.7/demo `synopsis` -h : affiche cette aide EOF } usage() { synopsis exit 1 } args() { local opt while getopts "h" opt; do case $opt in h) help; exit 0;; ?) usage;; esac done shift $(($OPTIND - 1)) [ $# -ne 2 ] && usage DIR1=$1 DIR2=$2 } # Programme principal VDN_PATH=$(readlink -f $(dirname $0)/..); . $VDN_PATH/bin/functions.sh args "$@" [ ! -d "$DIR1" ] && usage [ ! -d "$DIR2" ] && usage l1=$(cd $DIR1; ls *.tgz) l2=$(cd $DIR2; ls *.tgz) l=$(echo "$l1 $l2" | tr " " '\n' | sort -u | tr '\n' ' ') for i in $l; do echo echo "#------------------------------------------------------------" echo "### $i" echo "#------------------------------------------------------------" echo if [ ! -e $DIR1/$i ]; then echo "error : $DIR1/$i absent" continue fi if [ ! -e $DIR2/$i ]; then echo "error : $DIR2/$i absent" continue fi rm -Rf $TMP1 $TMP2 mkdir $TMP1 $TMP2 tar -C $TMP1 -xzf $DIR1/$i 2> /dev/null tar -C $TMP2 -xzf $DIR2/$i 2> /dev/null for f in $EXCLUDES; do rm -Rf $TMP1/$f; rm -Rf $TMP2/$f done diff -Bru $TMP1 $TMP2 2> /dev/null || true done echo "### END ###"