Compare commits

...

4 Commits

2 changed files with 37 additions and 5 deletions

View File

@ -1,5 +1,15 @@
История изменений:
0.4.2:
* исправлено создание и восстановление резервных копий с разными именами пользователей
0.4.1:
* добавлена возможность создания резервной копии префикса:
winehelper backup-prefix [имя_префикса]
* добавлена возможность восстановления резервной копии префикса:
winehelper restore-prefix "путь/до/резервной_копии.whpack"
* создание и восстановление резервной копии префикса включает в себя требуемую версиею WINE и информацию для создания .desktop файлов (ярлыков), что дает возможность переноса префикса на ПК без доступа к интернету
0.4.0:
* добавлена автоматическая установка и настройка wine-cpcsp_proxy при
использовании переменной WH_USE_CPCSP_PROXY=1

View File

@ -889,6 +889,11 @@ init_wineprefix () {
export DRIVE_C="$WINEPREFIX/drive_c"
create_new_dir "$WINEPREFIX/dosdevices/"
if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]]
then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:"
fi
if [[ ! -f "$WINEPREFIX/.firstboot" ]] ; then
create_new_dir "$WINEPREFIX"
if [[ "$CLEAR_PREFIX" == "1" ]]
@ -923,8 +928,9 @@ init_wineprefix () {
then try_force_link_dir "$DRIVE_C/users/$USER" "$DRIVE_C/users/xuser"
fi
if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]]
then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:"
if [[ ! -f "$WINEPREFIX/.update-timestamp" ]] ; then
"$WINELOADER" wineboot -u
wait_wineserver
fi
try_remove_file "$DRIVE_C/windows/system32/winemenubuilder.exe"
@ -1223,6 +1229,9 @@ remove_prefix() {
then print_error "Не указано имя префикса для удаления!"
fi
check_prefix_var
if [[ ! -d "$WINEPREFIX" ]]
then fatal "Префикса \"$PREFIX_NAME\" не существует!"
fi
if [[ ! $2 =~ --force|-y ]] ; then
echo "======================================================"
@ -1239,9 +1248,8 @@ remove_prefix() {
return 0
fi
fi
try_remove_dir "$WINEPREFIX"
if [[ $? -eq 0 ]]; then
if try_remove_dir "$WINEPREFIX" ; then
print_ok "Префикс "$PREFIX_NAME" успешно удален."
for desktop_file in "$WH_MENU_DIR"/*.desktop; do
@ -1322,6 +1330,8 @@ backup_prefix() {
local backup_archive_name="backup_${PREFIX_NAME}_$(date +%Y.%m.%d).whpack"
local backup_dest_path="$backup_base_dir/$backup_archive_name"
local temp_backup_dir="$WH_TMP_DIR/backup_${PREFIX_NAME}_$(date +%Y.%m.%d)"
local temp_prefix_dir="$temp_backup_dir/prefixes/$PREFIX_NAME"
local temp_users_dir="$temp_prefix_dir/drive_c/users"
print_info "Начало резервного копирования префикса: $PREFIX_NAME"
create_new_dir "$temp_backup_dir"
@ -1329,7 +1339,19 @@ backup_prefix() {
create_new_dir "$temp_backup_dir/dist/"
print_info "Подготовка префикса к упаковке..."
if cp -a "$WINEPREFIX" "$temp_backup_dir/prefixes/$PREFIX_NAME" ; then
if cp -a "$WINEPREFIX" "$temp_prefix_dir" ; then
try_remove_dir "$temp_prefix_dir/dosdevices"
try_remove_file "$temp_prefix_dir/.update-timestamp"
if [[ -d "$temp_users_dir/$USER" ]] \
&& [[ ! -L "$temp_users_dir/$USER" ]]
then
if [[ -L "$temp_users_dir/xuser" ]]
then try_remove_dir "$temp_users_dir/xuser"
fi
create_new_dir "$temp_users_dir/xuser"
cp -fr "$temp_users_dir/$USER"/* "$temp_users_dir/xuser/"
fi
try_remove_dir "$temp_users_dir/$USER"
print_ok "Директория префикса подготовлена."
else
print_error "Не удалось подготовить директорию префикса."