Commit a6fab16d authored by John Fox Woland's avatar John Fox Woland
Browse files

* Вызов duplicity - в отдельную функцию

* Обход бага с include/exclude для -restore. Надо будет придумать нормальное решение
parent 48890772
* Сообщение об удачном завершении вне зависимости от результата
* Указание include/exclude опций в глобальной конфигурации ведёт к неработоспособности -restore
1. Кавычки вокруг путей
2. Исключения питона
3. collection-status при уровне детализации больше 7 дважды выдаёт информацию по репозиторию
Если это кто-то будет читать: я сам уже не понимаю, что хотел сказать пунктами 1 и 3, и про какую версию дуплисити это написано. :+)
......@@ -9,4 +9,5 @@
+ Локаль
+ Перевод комментов и документации
+ Страница проекта
+ Параметры командной строки для интерактивного режима
......@@ -2,45 +2,37 @@
function do_backup ()
{
TMPDIR="$TMPDIR" PYTHONPATH="$PYTHONPATH" FTP_PASSWORD=$FTP_PASSWORD PASSPHRASE=$PASSPHRASE \
$DUPLICITY --exclude-globbing-filelist "$BACKUP_EXCLUDE" \
--include-globbing-filelist "$BACKUP_INCLUDE" \
--exclude '**' --full-if-older-than $INC_PERIOD \
$GLOBAL_OPTIONS $EXTRA_OPTIONS $OPTIONS -v$DEBUG / "$REPOSITORY"
call_backend "--exclude-globbing-filelist \"$BACKUP_EXCLUDE\" \
--include-globbing-filelist \"$BACKUP_INCLUDE\" \
--exclude '**' --full-if-older-than $INC_PERIOD" "/ \"$REPOSITORY\""
}
function do_cleanup ()
{
TMPDIR="$TMPDIR" PYTHONPATH="$PYTHONPATH" FTP_PASSWORD=$FTP_PASSWORD PASSPHRASE=$PASSPHRASE \
$DUPLICITY cleanup --force $GLOBAL_OPTIONS $EXTRA_OPTIONS $OPTIONS -v$DEBUG "$REPOSITORY"
call_backend "cleanup --force" "\"$REPOSITORY\""
}
function do_remove_old ()
{
TMPDIR="$TMPDIR" PYTHONPATH="$PYTHONPATH" FTP_PASSWORD=$FTP_PASSWORD PASSPHRASE=$PASSPHRASE \
$DUPLICITY remove-all-but-n-full $KEEP_FULL --force $GLOBAL_OPTIONS $EXTRA_OPTIONS $OPTIONS -v$DEBUG "$REPOSITORY"
call_backend "remove-all-but-n-full $KEEP_FULL --force" "\"$REPOSITORY\""
}
function do_verify ()
{
TMPDIR="$TMPDIR" PYTHONPATH="$PYTHONPATH" FTP_PASSWORD=$FTP_PASSWORD PASSPHRASE=$PASSPHRASE \
$DUPLICITY verify $GLOBAL_OPTIONS $EXTRA_OPTIONS $OPTIONS -v$DEBUG "$REPOSITORY" "$TARGET"
call_backend "verify" "\"$REPOSITORY\" \"$TARGET\""
}
function do_status ()
{
TMPDIR="$TMPDIR" PYTHONPATH="$PYTHONPATH" FTP_PASSWORD=$FTP_PASSWORD PASSPHRASE=$PASSPHRASE \
$DUPLICITY collection-status $GLOBAL_OPTIONS $EXTRA_OPTIONS $OPTIONS -v$DEBUG "$REPOSITORY"
call_backend "collection-status" "\"$REPOSITORY\""
}
function do_list ()
{
TMPDIR="$TMPDIR" PYTHONPATH="$PYTHONPATH" FTP_PASSWORD=$FTP_PASSWORD PASSPHRASE=$PASSPHRASE \
$DUPLICITY list-current-files $GLOBAL_OPTIONS $EXTRA_OPTIONS $OPTIONS -v$DEBUG "$REPOSITORY"
call_backend "list-current-files" "\"$REPOSITORY\""
}
function do_restore ()
{
TMPDIR="$TMPDIR" PYTHONPATH="$PYTHONPATH" FTP_PASSWORD=$FTP_PASSWORD PASSPHRASE=$PASSPHRASE \
$DUPLICITY $GLOBAL_OPTIONS $EXTRA_OPTIONS $OPTIONS -v$DEBUG "$REPOSITORY" "$TARGET"
call_backend "" "\"$REPOSITORY\" \"$TARGET\""
}
......@@ -101,3 +101,9 @@ function run_modules ()
IFS=$ifs
cd "$rm_cwd"
}
function call_backend ()
{
eval "TMPDIR=\"$TMPDIR\" PYTHONPATH=\"$PYTHONPATH\" FTP_PASSWORD=$FTP_PASSWORD PASSPHRASE=$PASSPHRASE \
$DUPLICITY $1 $GLOBAL_OPTIONS $EXTRA_OPTIONS $OPTIONS -v$DEBUG $2"
}
......@@ -169,6 +169,12 @@ case "$ACTION" in
"-restore")
TARGET="$PARAM1"
[ -n "$PARAM2" ] && EXTRA_OPTIONS="--file-to-restore \"$PARAM2\""
# +++ WORKAROUND
GLOBAL_OPTIONS=`echo $GLOBAL_OPTIONS | sed -r "s|--[^ ]*include[^ ]*||g" | sed -r "s|--[^ ]*exclude[^ ]*||g"`
EXTRA_OPTIONS=`echo $EXTRA_OPTIONS | sed -r "s|--[^ ]*include[^ ]*||g" | sed -r "s|--[^ ]*exclude[^ ]*||g"`
OPTIONS=`echo $OPTIONS | sed -r "s|--[^ ]*include[^ ]*||g" | sed -r "s|--[^ ]*exclude[^ ]*||g"`
# --- WORKAROUND
do_restore
;;
"-help")
......
Supports Markdown
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