Compare commits
5 Commits
0.5.0
...
extract_ic
Author | SHA1 | Date | |
---|---|---|---|
394ad6e891 | |||
674a499c5e | |||
a3de3240b6 | |||
f985c8d92e | |||
cd934bab1c |
52
winehelper
52
winehelper
@ -13,11 +13,13 @@ if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
|
|||||||
USER_WORK_PATH="$HOME/.local/share/$SCRIPT_NAME"
|
USER_WORK_PATH="$HOME/.local/share/$SCRIPT_NAME"
|
||||||
RUN_SCRIPT="/usr/bin/$SCRIPT_NAME"
|
RUN_SCRIPT="/usr/bin/$SCRIPT_NAME"
|
||||||
DATA_PATH="/usr/share/$SCRIPT_NAME"
|
DATA_PATH="/usr/share/$SCRIPT_NAME"
|
||||||
|
CHANGELOG_FILE="$(realpath "/usr/share/doc/winehelper"-*/CHANGELOG)"
|
||||||
else
|
else
|
||||||
# переменные для тестового запуска WineHelper из репозитория
|
# переменные для тестового запуска WineHelper из репозитория
|
||||||
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
|
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
|
||||||
RUN_SCRIPT="$(realpath "$0")"
|
RUN_SCRIPT="$(realpath "$0")"
|
||||||
DATA_PATH="$(dirname "$RUN_SCRIPT")"
|
DATA_PATH="$(dirname "$RUN_SCRIPT")"
|
||||||
|
CHANGELOG_FILE="$DATA_PATH/CHANGELOG"
|
||||||
|
|
||||||
# минимальная проверка синтаксиса скриптов
|
# минимальная проверка синтаксиса скриптов
|
||||||
for self_check_script in "$RUN_SCRIPT" \
|
for self_check_script in "$RUN_SCRIPT" \
|
||||||
@ -42,11 +44,11 @@ fatal () {
|
|||||||
print_confirmation () {
|
print_confirmation () {
|
||||||
local answer
|
local answer
|
||||||
read -p "$@ (y/N): " answer
|
read -p "$@ (y/N): " answer
|
||||||
|
|
||||||
if [[ ! "$answer" =~ ^[Yy]$ ]] ; then
|
if [[ ! "$answer" =~ ^[Yy]$ ]] ; then
|
||||||
print_info "Отменено пользователем."
|
print_info "Отменено пользователем."
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
##### CHECK VARIABLES #####
|
##### CHECK VARIABLES #####
|
||||||
@ -481,6 +483,41 @@ var_ld_library_path_update () {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extract_icon() {
|
||||||
|
check_prefix_var
|
||||||
|
local exe_file="$1"
|
||||||
|
local ico_name="$(basename "$exe_file" .exe).ico"
|
||||||
|
local png_name="$(basename "$exe_file" .exe).png"
|
||||||
|
local tmp_ico_dir="$WH_TMP_DIR/icons"
|
||||||
|
local user_icons="$WINEPREFIX/icons"
|
||||||
|
|
||||||
|
create_new_dir "$tmp_ico_dir"
|
||||||
|
|
||||||
|
if ! wrestool -x -t 14 "$exe_file" -o "$tmp_ico_dir/$ico_name" ; then
|
||||||
|
print_warning "Не удалось извлечь иконку из $exe_file"
|
||||||
|
try_remove_file "$tmp_ico_dir"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! icotool -x -i 1 "$tmp_ico_dir/$ico_name" -o "$tmp_ico_dir/$png_name" ; then
|
||||||
|
print_warning "Не удалось извлечь иконку из $ico_name"
|
||||||
|
try_remove_file "$tmp_ico_dir"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
create_new_dir "$user_icons"
|
||||||
|
|
||||||
|
if ! try_copy_file "$tmp_ico_dir/$png_name" "$user_icons" ; then
|
||||||
|
print_warning "Не удалось копировать иконку в префикс"
|
||||||
|
try_remove_file "$user_icons"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
try_remove_dir "$tmp_ico_dir"
|
||||||
|
print_ok "Иконка сохранена: $user_icons/$png_name"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
create_desktop () {
|
create_desktop () {
|
||||||
local name_desktop exe_file desktop_filename icon_file desktop_path
|
local name_desktop exe_file desktop_filename icon_file desktop_path
|
||||||
name_desktop="$1"
|
name_desktop="$1"
|
||||||
@ -1263,6 +1300,11 @@ prepair_wine () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
wine_run () {
|
wine_run () {
|
||||||
|
if [[ $WINEARCH == "win32" ]] \
|
||||||
|
&& file "$WIN_FILE_EXEC" | grep -q "x86-64"
|
||||||
|
then fatal "Нельзя запустить 64-битное приложение в 32-битном префиксе!"
|
||||||
|
fi
|
||||||
|
|
||||||
WIN_FILE_PATH="$(dirname "$WIN_FILE_EXEC")"
|
WIN_FILE_PATH="$(dirname "$WIN_FILE_EXEC")"
|
||||||
[[ -d "$WIN_FILE_PATH" ]] && cd "$WIN_FILE_PATH"
|
[[ -d "$WIN_FILE_PATH" ]] && cd "$WIN_FILE_PATH"
|
||||||
|
|
||||||
@ -1663,12 +1705,13 @@ wh_info () {
|
|||||||
run [программа] запуск программы (отладка)
|
run [программа] запуск программы (отладка)
|
||||||
remove-all удалить WineHelper и все связанные данные
|
remove-all удалить WineHelper и все связанные данные
|
||||||
remove-prefix [имя_префикса] удалить префикс и все связанные данные
|
remove-prefix [имя_префикса] удалить префикс и все связанные данные
|
||||||
backup-prefix [имя_префикса] создать резерную копию префикса
|
backup-prefix [имя_префикса] создать резервную копию префикса
|
||||||
restore-prefix \"путь/до/whpack\" восстановить префикс из резервной копии
|
restore-prefix \"путь/до/whpack\" восстановить префикс из резервной копии
|
||||||
|
|
||||||
Параметры:
|
Параметры:
|
||||||
--help показать эту справку и выйти
|
--help показать эту справку и выйти
|
||||||
--version показать информацию о пакете и его версии
|
--version показать информацию о пакете и его версии
|
||||||
|
--changelog показать историю изменений
|
||||||
--debug [команда] включить режим логирования работы WINE
|
--debug [команда] включить режим логирования работы WINE
|
||||||
|
|
||||||
"
|
"
|
||||||
@ -1693,8 +1736,9 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
case "$arg1" in
|
case "$arg1" in
|
||||||
--version) rpm -qi "$SCRIPT_NAME" ; exit 0 ;;
|
--version|version) rpm -qi "$SCRIPT_NAME" ; exit 0 ;;
|
||||||
--help) wh_info ; exit 0 ;;
|
--help|help) wh_info ; exit 0 ;;
|
||||||
|
--changelog|changelog) less "$CHANGELOG_FILE" ; exit 0 ;;
|
||||||
killall) kill_wine ;;
|
killall) kill_wine ;;
|
||||||
winecfg) prepair_wine ; wine_run "winecfg" ;;
|
winecfg) prepair_wine ; wine_run "winecfg" ;;
|
||||||
winereg|regedit) prepair_wine ; wine_run "regedit" ;;
|
winereg|regedit) prepair_wine ; wine_run "regedit" ;;
|
||||||
|
Reference in New Issue
Block a user