added function: create_base_pfx
This commit is contained in:
50
winehelper
50
winehelper
@ -1378,6 +1378,55 @@ remove_winehelper () {
|
||||
fi
|
||||
}
|
||||
|
||||
create_base_pfx () {
|
||||
export WINEPREFIX="$1"
|
||||
check_prefix_var
|
||||
|
||||
local prefix_dir="$WINEPREFIX"
|
||||
local drive_c_dir="$prefix_dir/drive_c"
|
||||
local users_dir="$drive_c_dir/users"
|
||||
local archive_path="$WH_TMP_DIR/pfx/new_${PREFIX_NAME}.tar.xz"
|
||||
|
||||
try_copy_dir "$prefix_dir" "${prefix_dir}_bak"
|
||||
|
||||
for wtlog in workaround isolate internal winxp win2 win7 win10
|
||||
do sed -i "/$wtlog/d" "$prefix_dir/winetricks.log"
|
||||
done
|
||||
|
||||
if [[ -d "$users_dir/$USER" ]] \
|
||||
&& [[ ! -L "$users_dir/$USER" ]]
|
||||
then
|
||||
if [[ -L "$users_dir/xuser" ]]
|
||||
then try_remove_dir "$users_dir/xuser/"
|
||||
fi
|
||||
create_new_dir "$users_dir/xuser/"
|
||||
cp -fr "$users_dir/$USER"/* "$users_dir/xuser/"
|
||||
fi
|
||||
|
||||
try_remove_file "$prefix_dir/.update-timestamp"
|
||||
try_remove_file "$prefix_dir/.firstboot"
|
||||
try_remove_file "$prefix_dir/last.conf"
|
||||
try_remove_dir "$prefix_dir/dosdevices/"
|
||||
try_remove_dir "$users_dir/$USER"
|
||||
try_remove_dir "$users_dir/xuser/AppData/Local/Temp/"
|
||||
try_remove_dir "$drive_c_dir/ProgramData/Package Cache/"
|
||||
try_remove_dir "$drive_c_dir/windows/temp/"
|
||||
try_remove_dir "$drive_c_dir/windows/Installer/"
|
||||
|
||||
rm -fr "$drive_c_dir/windows/Microsoft.NET"/*/*/SetupCache/
|
||||
|
||||
cd "$prefix_dir"
|
||||
if tar --no-xattrs -c -I 'xz --memlimit=8000MiB -9 -T0' -f "$archive_path" ./* ; then
|
||||
print_ok "Архив создан по пути: $archive_path"
|
||||
xdg-open "$(dirname "$archive_path")" &
|
||||
cd -
|
||||
else
|
||||
try_remove_file "$archive_path"
|
||||
cd -
|
||||
fatal "Не удалось создать архив."
|
||||
fi
|
||||
}
|
||||
|
||||
backup_prefix() {
|
||||
export WINEPREFIX="$1"
|
||||
check_prefix_var
|
||||
@ -1594,6 +1643,7 @@ case "$arg1" in
|
||||
restore-prefix) restore_prefix "$@" ;;
|
||||
remove-all) remove_winehelper "$@" ;;
|
||||
remove-prefix) remove_prefix "$@" ;;
|
||||
create-base-pfx) create_base_pfx "$@" ;;
|
||||
*)
|
||||
if [[ -f "$arg1" ]] ; then
|
||||
WIN_FILE_EXEC="$(readlink -f "$arg1")"
|
||||
|
Reference in New Issue
Block a user