You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
1.5 KiB
97 lines
1.5 KiB
#!/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 ###"
|