Compare commits

..

7 Commits

6 changed files with 34 additions and 33 deletions

View File

@ -22,7 +22,7 @@ _winehelper_completions() {
return 0 return 0
;; ;;
run|installed) run|installed)
local installed=$(grep -h "Exec=env" ~/.local/share/winehelper/*.desktop 2>/dev/null | awk -F'/' '{print $NF}' | awk -F'"' '{print $1}') local installed=$(ls -1 ~/.local/share/winehelper/ | grep ".desktop" | sed 's/.desktop//')
COMPREPLY=( $(compgen -W "${installed}" -- "${cur}") ) COMPREPLY=( $(compgen -W "${installed}" -- "${cur}") )
return 0 return 0
;; ;;

View File

@ -101,9 +101,7 @@ _get_list_for_install () {
_get_installed_list () { _get_installed_list () {
installed=( installed=(
${(f)"$(grep -h 'Exec=env' ~/.local/share/winehelper/*.desktop 2>/dev/null | ${(f)"$(ls -1 ~/.local/share/winehelper/ | grep ".desktop" | sed 's/.desktop//')"}
awk -F'/' '{print $NF}' |
awk -F'"' '{print $1}')"}
) )
if ((! ${#installed[@]} == 0 )); then if ((! ${#installed[@]} == 0 )); then

View File

@ -34,5 +34,5 @@ if try_download "https://www.tflexcad.ru/download/t-flex-cad-free/files/TFCAD_ST
try_remove_dir "${WH_TMP_DIR}/Стандартные элементы 17" try_remove_dir "${WH_TMP_DIR}/Стандартные элементы 17"
WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD Учебная Версия 17/Program/TFlexCad.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD Учебная Версия 17/Program/TFlexCad.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" "TFlexCadEDU"
fi fi

View File

@ -27,5 +27,5 @@ if try_download "https://www.tflex.ru/downloads/T-FLEX%20CAD%2017.zip" "${AUTOIN
try_remove_file "${AUTOINSTALL_EXE}" try_remove_file "${AUTOINSTALL_EXE}"
WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD 17/Program/TFlexCad.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" "TFlexCad"
fi fi

View File

@ -27,5 +27,5 @@ if try_download "https://www.tflex.ru/downloads/T-FLEX%20CAD%202D+%2017.zip" "${
try_remove_file "${AUTOINSTALL_EXE}" try_remove_file "${AUTOINSTALL_EXE}"
WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD 2D+ 17/Program/TFlexCad.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/T-FLEX CAD 2D+ 17/Program/TFlexCad.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON" "TFlexCad2D"
fi fi

View File

@ -433,10 +433,13 @@ var_ld_library_path_update () {
} }
create_desktop () { create_desktop () {
local name_desktop="$1" local name_desktop exe_file desktop_filename icon_file desktop_path
local exe_file="$2" name_desktop="$1"
local desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")" exe_file="$2"
local icon_file if [[ -n $4 ]] && [[ $4 != "nocopy" ]];
then desktop_filename="$4"
else desktop_filename="$(basename "$exe_file" .exe | sed "s| |_|")"
fi
if [[ "$RESTORE_FROM_BACKUP" == "1" ]] && [[ -f "$3" ]] if [[ "$RESTORE_FROM_BACKUP" == "1" ]] && [[ -f "$3" ]]
then icon_file="$3" then icon_file="$3"
elif [[ -f "$WH_IMAGE_PATH/$3.png" ]] elif [[ -f "$WH_IMAGE_PATH/$3.png" ]]
@ -493,7 +496,6 @@ create_desktop () {
echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list" echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list"
fi fi
# создаем файл категории для меню # создаем файл категории для меню
create_new_dir "$HOME/.local/share/desktop-directories" create_new_dir "$HOME/.local/share/desktop-directories"
if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then if [[ ! -f "$WH_MENU_CATEGORY" ]] ; then
@ -528,14 +530,8 @@ EOF
update-desktop-database "$HOME/.local/share/applications" update-desktop-database "$HOME/.local/share/applications"
if [[ $4 != "nocopy" ]] ; then if [[ $4 != "nocopy" ]] ; then
if [[ -n $4 ]] ; then desktop_path="$(xdg-user-dir DESKTOP)"
local desktop_path="$(xdg-user-dir DESKTOP)/$4" print_info "В меню и на рабочем столе создан $desktop_filename.desktop"
create_new_dir "$desktop_path"
print_info "В меню создан $desktop_filename.desktop и скопирован на рабочий стол в каталог $4"
else
local desktop_path="$(xdg-user-dir DESKTOP)"
print_info "В меню и на рабочем столе создан $desktop_filename.desktop"
fi
cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path" cp -f "$USER_WORK_PATH/$desktop_filename.desktop" "$desktop_path"
else else
print_info "В меню создан $desktop_filename.desktop" print_info "В меню создан $desktop_filename.desktop"
@ -589,7 +585,7 @@ check_installed_programs () {
print_info "Список установленных программ:" print_info "Список установленных программ:"
check_installed_programs check_installed_programs
exit 1 exit 1
elif [[ "$EXE_PATH" =~ ${2}$ ]] ; then elif [[ "$desktop_file" =~ ${2}.desktop ]] ; then
export EXE_PATH export EXE_PATH
return 0 return 0
fi fi
@ -597,7 +593,8 @@ check_installed_programs () {
*) *)
if [[ -f "$EXE_PATH.whdb" ]] ; then if [[ -f "$EXE_PATH.whdb" ]] ; then
WH_INFO_RU="$(grep "info_ru:" "$EXE_PATH.whdb" | awk -F"info_ru: " '{print $2}')" WH_INFO_RU="$(grep "info_ru:" "$EXE_PATH.whdb" | awk -F"info_ru: " '{print $2}')"
printf "\E[36m%s $SCRIPT_NAME run $(basename "$EXE_PATH") - $(basename "$desktop_file") %s\e[0m\n" WH_PROG_NAME="$(grep "PROG_NAME" "$EXE_PATH.whdb" | awk -F"=" '{print $2}')"
printf "\E[36m%s $SCRIPT_NAME run $(basename "$desktop_file" .desktop) %s\e[0m- $WH_PROG_NAME\n"
echo -e "$WH_INFO_RU\n" echo -e "$WH_INFO_RU\n"
fi fi
;; ;;
@ -942,6 +939,7 @@ init_wineprefix () {
fi fi
export DRIVE_C="$WINEPREFIX/drive_c" export DRIVE_C="$WINEPREFIX/drive_c"
export XUSER_PATH="$DRIVE_C/users/xuser"
if [[ ! -f "$WINEPREFIX/.firstboot" ]] ; then if [[ ! -f "$WINEPREFIX/.firstboot" ]] ; then
create_new_dir "$WINEPREFIX" create_new_dir "$WINEPREFIX"
@ -971,10 +969,10 @@ init_wineprefix () {
print_info "Windows версия изменена на win${WH_WINDOWS_VER}" print_info "Windows версия изменена на win${WH_WINDOWS_VER}"
fi fi
if [[ -d "$DRIVE_C/users/xuser" ]] && [[ ! -d "$DRIVE_C/users/$USER" ]] if [[ -d "$XUSER_PATH" ]] && [[ ! -d "$DRIVE_C/users/$USER" ]]
then try_force_link_dir "$DRIVE_C/users/xuser" "$DRIVE_C/users/$USER" then try_force_link_dir "$XUSER_PATH" "$DRIVE_C/users/$USER"
elif [[ ! -d "$DRIVE_C/users/xuser" ]] && [[ -d "$DRIVE_C/users/$USER" ]] elif [[ ! -d "$XUSER_PATH" ]] && [[ -d "$DRIVE_C/users/$USER" ]]
then try_force_link_dir "$DRIVE_C/users/$USER" "$DRIVE_C/users/xuser" then try_force_link_dir "$DRIVE_C/users/$USER" "$XUSER_PATH"
fi fi
if [[ ! -f "$WINEPREFIX/.update-timestamp" ]] ; then if [[ ! -f "$WINEPREFIX/.update-timestamp" ]] ; then
@ -983,12 +981,15 @@ init_wineprefix () {
wait_wineserver wait_wineserver
fi fi
if [[ -L "$XUSER_PATH/Desktop" ]]
then rm -f "$XUSER_PATH/Desktop"
fi
create_new_dir "$XUSER_PATH/Desktop"
if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]] if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]]
then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:" then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:"
fi fi
try_remove_file "$DRIVE_C/windows/system32/winemenubuilder.exe"
if [[ $WH_USE_MESA_GL_OVERRIDE == "1" ]] \ if [[ $WH_USE_MESA_GL_OVERRIDE == "1" ]] \
&& ! lspci | grep -i nvidia > /dev/null ; then && ! lspci | grep -i nvidia > /dev/null ; then
export MESA_GL_VERSION_OVERRIDE="3.3" export MESA_GL_VERSION_OVERRIDE="3.3"
@ -1407,12 +1408,14 @@ create_base_pfx () {
export WINEPREFIX="$1" export WINEPREFIX="$1"
check_prefix_var check_prefix_var
local prefix_dir="$WINEPREFIX" local prefix_dir drive_c_dir users_dir archive_path
local drive_c_dir="$prefix_dir/drive_c" prefix_dir="$WINEPREFIX"
local users_dir="$drive_c_dir/users" drive_c_dir="$prefix_dir/drive_c"
local archive_path="$WH_TMP_DIR/pfx/new_${PREFIX_NAME}.tar.xz" users_dir="$drive_c_dir/users"
archive_path="$WH_TMP_DIR/pfx/new_${PREFIX_NAME}.tar.xz"
try_copy_dir "$prefix_dir" "${prefix_dir}_bak" try_copy_dir "$prefix_dir" "${prefix_dir}_bak"
create_new_dir "$WH_TMP_DIR/pfx/"
for wtlog in workaround isolate internal winxp win2 win7 win10 for wtlog in workaround isolate internal winxp win2 win7 win10
do sed -i "/$wtlog/d" "$prefix_dir/winetricks.log" do sed -i "/$wtlog/d" "$prefix_dir/winetricks.log"
@ -1616,7 +1619,7 @@ wh_info () {
install [скрипт] --clear-pfx не использовать готовый префикс для установки ПО install [скрипт] --clear-pfx не использовать готовый префикс для установки ПО
installed список установленных программ installed список установленных программ
run [программа.exe] запуск программы (отладка) run [программа] запуск программы (отладка)
remove-all удалить WineHelper и все связанные данные remove-all удалить WineHelper и все связанные данные
remove-prefix [имя_префикса] удалить префикс и все связанные данные remove-prefix [имя_префикса] удалить префикс и все связанные данные
backup-prefix [имя_префикса] создать резерную копию префикса backup-prefix [имя_префикса] создать резерную копию префикса