aboutsummaryrefslogtreecommitdiffstats
path: root/tools/bak.sh
blob: 93a6f68f42a47007022907fd955d3cf7ff805271 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/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 <laurent@p1sec.com>

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