#!/bin/sh # Creates a backup of the current directory in the parent # directory with name $(basename `pwd`)-bakXXX-$1, # and copy both directories to HOST. # A make clean is done before all. # # Can be used as alternative to versionning # 2012 Laurent Ghigonis DIRNAME=$(basename `pwd`) HOST=${HOST-"user@host"} if [ X"$1" = X"" ]; then echo "usage: $0 backup_name" exit 1 fi echo "make clean" make clean echo cd .. dir="" last="" echo $DIRNAME-bak* |tr ' ' '\n' > list for i in $(seq -f "%03g" 999); do name="$DIRNAME-bak$i" dir=`grep $name list` if [ $? -ne "0" ]; then dir=$name-$1 echo "last $last" echo "new $dir" echo break fi last=$dir done if [ $dir = "" ]; then echo no backup name available ! exit 1 fi read -p "going to diff" a diff -ruN $last $DIRNAME 2>&1 |less echo read -p "go ?" a echo -n copying to $dir ... cp -Rp $DIRNAME/ $dir && echo done echo -n backup to server ... scp -Cr $DIRNAME/ $dir $HOST && echo done rm list