Commit eed34442 authored by Vitaly Lipatov's avatar Vitaly Lipatov

eterbackup: split repack code

parent 319831b2
......@@ -68,25 +68,46 @@ while read subdir ; do
# FIXME: copy dir permissions
mkdir -p "$DUMPDIR/$reldir"
case $COMMAND in
update)
# workaround for correct internal path
cd $BACKUPDIR/$reldir/.. || exit
# packing
zpaq a "$DUMPDIR/$reldir/$bdir.$STN.zpaq" "$bdir"
cd - >/dev/null
;;
repack)
# TODO: тут нужно сделать другой обход каталогов (готовых)
# TODO: выделить в отдельную функцию
# TODO: check it
zpaq extract "$DUMPDIR/$reldir/$bdir.$STN.zpaq" -to "$DUMPDIR/$reldir/../$bdir.$STZ.zpaq" || exit
rm -f $DUMPDIR/$reldir/$bdir.$STN.zpaq
mv $DUMPDIR/$reldir/../$bdir.$STZ.zpaq $DUMPDIR/$reldir/$bdir.$STZ.zpaq
;;
*)
exit 1
esac
# workaround for correct internal path
cd $BACKUPDIR/$reldir/.. || exit
# packing
echo
echo "Packing $bdir..."
zpaq a "$DUMPDIR/$reldir/$bdir.$STN.zpaq" "$bdir"
cd - >/dev/null
done
}
repack_dump()
{
# Получаем список каталогов, которые мы хотим превратить в файлы
find $BACKUPDIR -depth -maxdepth $DEPTH -mindepth $DEPTH -type d | \
while read subdir ; do
# TODO: не забыть файлы в основном каталоге
# TODO: неизвестно, как сделать нерекурсивным
# /var/log/long/something -> long/something
reldir="${subdir/$BACKUPDIR\//}"
bdir=$(basename "$reldir")
# TODO: improve
if [ "$bdir" = "$EXCLUDEDIR" ] ; then
echo "Skip excluded $bdir"
continue
fi
# TODO: удалённые каталоги будут незамечены и останутся.
# Создавать новый слой, копируя со старого, и оставляя тот старыми датами?
# FIXME: copy dir permissions
mkdir -p "$DUMPDIR/$reldir"
# TODO: тут нужно сделать другой обход каталогов (готовых)
# TODO: выделить в отдельную функцию
# TODO: check it
zpaq purge "$DUMPDIR/$reldir/$bdir.$STN.zpaq" -to "$DUMPDIR/$reldir/../$bdir.$STZ.zpaq" || exit
rm -f $DUMPDIR/$reldir/$bdir.$STN.zpaq
mv $DUMPDIR/$reldir/../$bdir.$STZ.zpaq $DUMPDIR/$reldir/$bdir.$STZ.zpaq
done
}
......@@ -124,26 +145,31 @@ if [ "$1" = "--exclude" ] ; then
fi
case $COMMAND in
update|repack)
update)
# from
BACKUPDIR=$(realpath -e "$1") || exit
# to
DUMPDIR=$(realpath -m "$2")
update_dump
exit
;;
repack)
# from
BACKUPDIR=$(realpath -e "$1") || exit
# to
DUMPDIR=$(realpath -m "$2")
repack_dump
;;
list)
# from
BACKUPDIR=$(realpath -e "$1") || exit
list_dirs
exit
;;
extract)
DUMPDIR=$(realpath -e "$1") || exit
DESTDIR=$(realpath -m "$2")/$(basename $DUMPDIR)
extract_dump
exit
;;
-h|--help)
echo $DESCR
......@@ -160,7 +186,6 @@ case $COMMAND in
echo
echo "Extract backup:"
echo " $ eterbackup extract /path/backup /path/to"
exit
;;
*)
echo "$DESCR" >&2
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment