forked from CastroFidel/winehelper
Compare commits
7 Commits
refactor/s
...
master
Author | SHA1 | Date | |
---|---|---|---|
33a181fe4f | |||
dfe41ea9c2 | |||
299ee7ed53 | |||
7c41d656aa | |||
10707bd010 | |||
bd9d5b9561 | |||
9caea05eb5 |
@ -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
|
||||||
;;
|
;;
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
55
winehelper
55
winehelper
@ -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 [имя_префикса] создать резерную копию префикса
|
||||||
|
Reference in New Issue
Block a user