forked from CastroFidel/winehelper
Compare commits
11 Commits
backup_pfx
...
readme
Author | SHA1 | Date | |
---|---|---|---|
6f50e5e0cf | |||
a58c477e32 | |||
61c1d81192 | |||
19fdd64d1f | |||
0ee9b42d1f | |||
98902bd8f2 | |||
17afd90e93 | |||
19af68332b | |||
a2a63cf1ff | |||
858507fc8d | |||
68870f8307 |
@ -1,5 +1,10 @@
|
|||||||
История изменений:
|
История изменений:
|
||||||
|
|
||||||
|
0.4.0:
|
||||||
|
* добавлена автоматическая установка и настройка wine-cpcsp_proxy при
|
||||||
|
использовании переменной WH_USE_CPCSP_PROXY=1
|
||||||
|
* подготовка функций для создания бэкапов префикса
|
||||||
|
|
||||||
0.3.9:
|
0.3.9:
|
||||||
* обновлен скрипт установки scadoffice
|
* обновлен скрипт установки scadoffice
|
||||||
* добавлена автоустановка:
|
* добавлена автоустановка:
|
||||||
@ -8,7 +13,8 @@
|
|||||||
* добавлена возможность удаления префикса
|
* добавлена возможность удаления префикса
|
||||||
|
|
||||||
0.3.8:
|
0.3.8:
|
||||||
* добавлена возможность ассоциации и запуска файлов из WINE в нативном Linux приложении
|
* добавлена возможность ассоциации и запуска файлов из WINE в нативном Linux
|
||||||
|
приложении с помощью перемененной. Пример: WH_XDG_OPEN="rtf txt doc"
|
||||||
* добавлен выбор префикса, если переменная WINEPREFIX не объявлена
|
* добавлен выбор префикса, если переменная WINEPREFIX не объявлена
|
||||||
* добавлено сохранение последней конфигурации использования префикса
|
* добавлено сохранение последней конфигурации использования префикса
|
||||||
* добавлено сохранение скписка создаваемых ярлыков для приложений
|
* добавлено сохранение скписка создаваемых ярлыков для приложений
|
||||||
|
163
README.md
Normal file
163
README.md
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
<div align="center">
|
||||||
|
<h1 align="center">WineHelper</h1>
|
||||||
|
<p align="center">WineHelper - предназначен для упрощения установки windows-приложений, с помощью подготовленных скриптов, в разные префиксы и используя портативные версии wine для максимальной повторяемости на различных системах, начиная с релиза p10 Alt Linux и выше.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
```
|
||||||
|
su -
|
||||||
|
apt-get update && apt-get dist-upgrade
|
||||||
|
apt-get install winehelper
|
||||||
|
exit
|
||||||
|
```
|
||||||
|
|
||||||
|
## Использование WineHelper
|
||||||
|
### Список приложений для установки
|
||||||
|
|
||||||
|
Для вывода списка доступных к установке приложений:
|
||||||
|
|
||||||
|
```
|
||||||
|
winehelper install list
|
||||||
|
```
|
||||||
|
|
||||||
|
либо использовать сокращенную команду:
|
||||||
|
|
||||||
|
```
|
||||||
|
winehelper -i
|
||||||
|
```
|
||||||
|
|
||||||
|
### Запуск установки приложений
|
||||||
|
В списках есть 2 вида установщиков:
|
||||||
|
|
||||||
|
**Список программ с возможностью автоматической установки** - содержит полностью автоматизированные скрипты установок программ у которых есть дистрибутивы (установщики) в свободном доступе.
|
||||||
|
|
||||||
|
Пример:
|
||||||
|
|
||||||
|
```
|
||||||
|
winehelper install spravki-bk
|
||||||
|
```
|
||||||
|
|
||||||
|
либо использовать сокращенную команду:
|
||||||
|
|
||||||
|
```
|
||||||
|
winehelper -i spravki-bk
|
||||||
|
```
|
||||||
|
|
||||||
|
**Список программ с возможностью установки из существующего дистрибутива** - содержит скрипты установок для программ которых нет в свободном доступе.
|
||||||
|
|
||||||
|
Пример:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
winehelper install is-record-station "/путь/до/установочного_файла"
|
||||||
|
```
|
||||||
|
|
||||||
|
либо использовать сокращенную команду:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
winehelper -i is-record-station "/путь/до/установочного_файла"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Процесс установки приложений
|
||||||
|
|
||||||
|
1. при первом запуске winehelper произойдет проверка на дополнительные зависимости и при необходимости будет запрос ввода root пароля для установки пакетов
|
||||||
|
2. далее будет предложено принять лицензионные соглашения использования сторонних компонентов, для продолжения нажмите любую клавишу на клавиатуре
|
||||||
|
3. на данном этапе, в большей части скриптов, всё устанавливается автоматически с подробным выводом информации в терминале:
|
||||||
|
- загрузка необходимой версии wine, с последующей проверкой хэш-суммы
|
||||||
|
- загрузка базового префикса, с последующей проверкой хэш-суммы
|
||||||
|
- первичные обновление и подготовка префикса
|
||||||
|
- скачивание дистрибутива (установщика) программы с официального сайта
|
||||||
|
- установка программы
|
||||||
|
- создание desktop файла (ярлыка) на рабочем столе и в меню
|
||||||
|
|
||||||
|
Если устанавливаемое приложение требует дополнительных действий от пользователя, об этом будет явно написано в терминале.
|
||||||
|
|
||||||
|
### Процесс удаления префикса с приложением
|
||||||
|
Выполняем команду:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
winehelper remove-prefix
|
||||||
|
```
|
||||||
|
|
||||||
|
и видим список префиксов доступных для удаления, например:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
winehelper remove-prefix spravki-bk
|
||||||
|
```
|
||||||
|
|
||||||
|
после подтверждения клавишей "y" полностью удалит префикс с ПО и desktop файлы (ярлыки)
|
||||||
|
|
||||||
|
### Процесс удаления WineHelper
|
||||||
|
Выполняем команду:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
winehelper remove-all
|
||||||
|
```
|
||||||
|
|
||||||
|
после подтверждения клавишей "y" данная команда удалить WineHelper и все связанные данные (префиксы, ярлыки, wine, прогаммы установленные с помощью WineHelper)
|
||||||
|
|
||||||
|
### Процесс создания резервной копии префикса
|
||||||
|
Выполняем команду:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
winehelper backup-prefix "имя префикса"
|
||||||
|
```
|
||||||
|
|
||||||
|
команда создаст резервную копию префикса на рабочем столе в виде архива backup_имя_префикса_год.месяц.цисло.whpack
|
||||||
|
|
||||||
|
### Процесс восстановления резервной копии префикса
|
||||||
|
Выполняем команду:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
winehelper restore-prefix "/путь/к/архиву.whpack"
|
||||||
|
```
|
||||||
|
|
||||||
|
команда восстановит префикс из резервной копии а также desktop файлы и фалы меню
|
||||||
|
|
||||||
|
|
||||||
|
### Дополнительные команды
|
||||||
|
|
||||||
|
```sh
|
||||||
|
winehelper help
|
||||||
|
```
|
||||||
|
|
||||||
|
Вывод:
|
||||||
|
<pre>
|
||||||
|
Использование: $SCRIPT_NAME [команда]
|
||||||
|
|
||||||
|
Команды:
|
||||||
|
install list список возможных установочных скриптов
|
||||||
|
install [скрипт] запустить скрипт установки программы
|
||||||
|
install [скрипт] --clear-pfx не использовать подготовленный префикс для установки ПО
|
||||||
|
|
||||||
|
installed список установленных программ
|
||||||
|
run [программа.exe] запуск программы (отладка)
|
||||||
|
remove-all удалить WineHelper и все связанные данные
|
||||||
|
remove-prefix [имя_префикса] удалить префикс и все связанные данные
|
||||||
|
backup-prefix [имя_префикса] создать резервную копию префикса
|
||||||
|
restore-prefix [имя_префикса] восстановить префикс из резервной копии
|
||||||
|
|
||||||
|
Параметры:
|
||||||
|
--help показать эту справку и выйти
|
||||||
|
--version показать информацию о пакете и его версии
|
||||||
|
--debug [команда] включить режим логирования работы WINE
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
## 🛠 Участие в разработке
|
||||||
|
|
||||||
|
Мы рады вашим Pull Request'ам! Вот как можно помочь:
|
||||||
|
|
||||||
|
1. **Сообщить о баге или предложить улучшение**
|
||||||
|
Откройте [Задачи](https://git.linux-gaming.ru/CastroFidel/winehelper/issues), опишите проблему или идею.
|
||||||
|
|
||||||
|
2. **Исправить баг или добавить функционал**
|
||||||
|
- Форкните репозиторий
|
||||||
|
- Создайте ветку (`git checkout -b feature/ваша-фича`)
|
||||||
|
- Закоммитьте изменения (`git commit -m 'Добавил ...'`)
|
||||||
|
- Запушьте в форк (`git push origin feature/ваша-фича`)
|
||||||
|
- Откройте Pull Request
|
||||||
|
|
||||||
|
3. **Помощь с документацией**
|
||||||
|
Исправления в документации тоже приветствуются!
|
||||||
|
|
||||||
|
Перед началом работы обсудите вашу идею в [Задачи](https://git.linux-gaming.ru/CastroFidel/winehelper/issues), чтобы избежать дублирования.
|
@ -3,6 +3,7 @@
|
|||||||
3571c40a787f0386e0160b5d471b1bf11fa2a235b497156cd38198b90bcb4a9f wine_x_tkg_10-0_i586.tar.xz
|
3571c40a787f0386e0160b5d471b1bf11fa2a235b497156cd38198b90bcb4a9f wine_x_tkg_10-0_i586.tar.xz
|
||||||
71d6fdfd23d7988471d345c68e81699b8af931352b03dd216424b398f63c7b12 wine_x_tkg_10-0_amd64.tar.xz
|
71d6fdfd23d7988471d345c68e81699b8af931352b03dd216424b398f63c7b12 wine_x_tkg_10-0_amd64.tar.xz
|
||||||
fb7fdfde96de10a1b3b051bdf2727b6a7c1768b878483726454dd6726e9e0193 wine-9.0.14-alt1-i586-spravkibk.tar.xz
|
fb7fdfde96de10a1b3b051bdf2727b6a7c1768b878483726454dd6726e9e0193 wine-9.0.14-alt1-i586-spravkibk.tar.xz
|
||||||
|
e0a84bb4908c3927954d7eef6b8ac7212e442b8c107d000c6890fec340f96183 wine-9.0.14-alt1-amd64.tar.xz
|
||||||
6f86d2220b65b709bf88c6f829a4998de3b929cc2091cd1333a51c32e1491b79 wine-9.0.9-alt1-i586.tar.xz
|
6f86d2220b65b709bf88c6f829a4998de3b929cc2091cd1333a51c32e1491b79 wine-9.0.9-alt1-i586.tar.xz
|
||||||
|
|
||||||
##### DXVK #####
|
##### DXVK #####
|
||||||
|
107
winehelper
107
winehelper
@ -12,21 +12,41 @@ print_warning () { printf "\E[33m%s Предупреждение: $@ %s\e[0m\n"
|
|||||||
print_info () { printf "\E[36m%s Информация: \"$@\" %s\e[0m\n" ;}
|
print_info () { printf "\E[36m%s Информация: \"$@\" %s\e[0m\n" ;}
|
||||||
print_ok () { printf "\E[35m%s Успех: $@ %s\e[0m\n" ;}
|
print_ok () { printf "\E[35m%s Успех: $@ %s\e[0m\n" ;}
|
||||||
print_var () { for vp in $@ ; do echo "${vp}=${!vp}" ; done ;}
|
print_var () { for vp in $@ ; do echo "${vp}=${!vp}" ; done ;}
|
||||||
fatal () { print_error "$@" ; exit 1 ;}
|
fatal () {
|
||||||
|
print_error "$@"
|
||||||
|
[[ -n "$WINESERVER" ]] && "$WINESERVER" -w
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
##### CHECK VARIABLES #####
|
##### CHECK VARIABLES #####
|
||||||
check_variables () { [[ -z ${!1} ]] && export $1="$2" ;}
|
check_variables () { [[ -z ${!1} ]] && export $1="$2" ;}
|
||||||
|
|
||||||
##### CHECK DEBUG #####
|
##### CHECK DEBUG #####
|
||||||
if [[ "$1" == "--debug" ]] ; then
|
if [[ "$1" == "--debug" ]] ; then
|
||||||
export DEBUG="full"
|
check_variables WINEDEBUG "+loaddll,+seh"
|
||||||
export LOG_FILE="$HOME/winehelper.log"
|
export DXVK_LOG_LEVEL="error"
|
||||||
|
export VKD3D_DEBUG "error"
|
||||||
|
export WINE_MONO_TRACE "E:System.NotImplementedException"
|
||||||
|
export VK_LOADER_DEBUG "error"
|
||||||
|
export VKBASALT_LOG_LEVEL "error"
|
||||||
|
export DXVK_NVAPI_LOG_LEVEL "error"
|
||||||
shift
|
shift
|
||||||
print_warning "Включен режим подробного логирования работы WINE."
|
else
|
||||||
|
check_variables WINEDEBUG "-all"
|
||||||
|
check_variables DXVK_LOG_LEVEL "none"
|
||||||
|
check_variables VKD3D_SHADER_DEBUG "none"
|
||||||
|
check_variables VKD3D_DEBUG "none"
|
||||||
|
check_variables DXVK_LOG_PATH "none"
|
||||||
|
check_variables VKBASALT_LOG_LEVEL "none"
|
||||||
|
check_variables DXVK_NVAPI_LOG_LEVEL "none"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $WINEDEBUG != "-all" ]] ; then
|
||||||
|
export LOG_FILE="$HOME/winehelper.log"
|
||||||
|
date > "$LOG_FILE"
|
||||||
|
print_warning "Включен режим логирования работы WINE."
|
||||||
print_warning "Лог будет сохранен по пути: $LOG_FILE"
|
print_warning "Лог будет сохранен по пути: $LOG_FILE"
|
||||||
sleep 3
|
sleep 3
|
||||||
else
|
|
||||||
check_variables DEBUG "0"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
##### WINETRICKS VERSION #####
|
##### WINETRICKS VERSION #####
|
||||||
@ -299,9 +319,9 @@ var_winedlloverride_update () {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
var_vkd3d_config_update () {
|
var_dxvk_config_update () {
|
||||||
if [[ -n "${DXVK_CONFIG}" ]]
|
if [[ -n "${DXVK_CONFIG}" ]]
|
||||||
then export DXVK_CONFIG="${1}; ${DXVK_CONFIG}"
|
then export DXVK_CONFIG="${1};${DXVK_CONFIG}"
|
||||||
else export DXVK_CONFIG="${1}"
|
else export DXVK_CONFIG="${1}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -385,7 +405,9 @@ create_desktop () {
|
|||||||
&& grep -qe "^${name_desktop}=" "$WINEPREFIX/desktop.list"
|
&& grep -qe "^${name_desktop}=" "$WINEPREFIX/desktop.list"
|
||||||
then sed -i "/^$name_desktop=/d" "$WINEPREFIX/desktop.list"
|
then sed -i "/^$name_desktop=/d" "$WINEPREFIX/desktop.list"
|
||||||
fi
|
fi
|
||||||
echo "$name_desktop=${exe_file//$WINEPREFIX/}" >> "$WINEPREFIX/desktop.list"
|
create_new_dir "$WINEPREFIX/icons"
|
||||||
|
try_copy_file "$icon_file" "$WINEPREFIX/icons/"
|
||||||
|
echo "$name_desktop=${exe_file//$WINEPREFIX/}=$(basename "$icon_file")" >> "$WINEPREFIX/desktop.list"
|
||||||
|
|
||||||
# создаем файл категории для меню
|
# создаем файл категории для меню
|
||||||
create_new_dir "$HOME/.local/share/desktop-directories"
|
create_new_dir "$HOME/.local/share/desktop-directories"
|
||||||
@ -673,27 +695,6 @@ init_wine_ver () {
|
|||||||
export WINESERVER="wineserver"
|
export WINESERVER="wineserver"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
check_variables DXVK_LOG_LEVEL "none"
|
|
||||||
check_variables VKD3D_SHADER_DEBUG "none"
|
|
||||||
check_variables VKD3D_DEBUG "none"
|
|
||||||
check_variables DXVK_LOG_PATH "none"
|
|
||||||
check_variables VKBASALT_LOG_LEVEL "none"
|
|
||||||
check_variables DXVK_NVAPI_LOG_LEVEL "none"
|
|
||||||
|
|
||||||
if [[ $DEBUG == "0" ]] ; then
|
|
||||||
check_variables WINEDEBUG "-all"
|
|
||||||
elif [[ $DEBUG == "full" ]] ; then
|
|
||||||
check_variables WINEDEBUG "+loaddll,+seh"
|
|
||||||
export DXVK_LOG_LEVEL="error"
|
|
||||||
export VKD3D_DEBUG "error"
|
|
||||||
export WINE_MONO_TRACE "E:System.NotImplementedException"
|
|
||||||
export VK_LOADER_DEBUG "error"
|
|
||||||
export VKBASALT_LOG_LEVEL "error"
|
|
||||||
export DXVK_NVAPI_LOG_LEVEL "error"
|
|
||||||
else
|
|
||||||
check_variables WINEDEBUG "err+all"
|
|
||||||
fi
|
|
||||||
|
|
||||||
print_info "Используется версия wine: $WH_WINE_USE"
|
print_info "Используется версия wine: $WH_WINE_USE"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -977,13 +978,27 @@ init_wineprefix () {
|
|||||||
else cpcsp_proxy_cmd=("${WINELOADER}64" "cpcsp_proxy_setup.exe")
|
else cpcsp_proxy_cmd=("${WINELOADER}64" "cpcsp_proxy_setup.exe")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
print_info "Запускаем настройку cpcsp_proxy:"
|
print_info "Запускаем настройку cpcsp_proxy..."
|
||||||
echo "${cpcsp_proxy_cmd[*]}"
|
unset CPCSP_PROXY_OK
|
||||||
if "${cpcsp_proxy_cmd[@]}"
|
set -o pipefail
|
||||||
then print_info "Настройка cpcsp_proxy успешно завершена."
|
for ((i=2; i < 6; i++)) ; do
|
||||||
else fatal "Ошибка во время настройки cpcsp_proxy."
|
"${cpcsp_proxy_cmd[@]}" | tee "$WINEPREFIX/cpcsp_setup.log"
|
||||||
fi
|
local CPCSP_EXIT_STATUS="${PIPESTATUS[0]}"
|
||||||
|
if grep -q "failed to load /opt/cprocsp/" "$WINEPREFIX/cpcsp_setup.log" ; then
|
||||||
|
fatal "Проверьте правильность установки CryptoPro в системе.\n Инструкция: https://www.altlinux.org/CryptoPro"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $CPCSP_EXIT_STATUS == "0" ]] ; then
|
||||||
|
print_info "Настройка cpcsp_proxy успешно завершена."
|
||||||
|
CPCSP_PROXY_OK="1"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
print_warning "Попытка $i из 5..."
|
||||||
|
wait_wineserver
|
||||||
|
done
|
||||||
wait_wineserver
|
wait_wineserver
|
||||||
|
try_remove_file "$WINEPREFIX/cpcsp_setup.log"
|
||||||
|
[[ $CPCSP_PROXY_OK != "1" ]] && fatal "Ошибка во время настройки cpcsp_proxy."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1021,10 +1036,6 @@ use_winetricks () {
|
|||||||
USE_WT_FROM_DB=0
|
USE_WT_FROM_DB=0
|
||||||
[[ ! -f "$WINEPREFIX/winetricks.log" ]] && touch "$WINEPREFIX/winetricks.log"
|
[[ ! -f "$WINEPREFIX/winetricks.log" ]] && touch "$WINEPREFIX/winetricks.log"
|
||||||
for need_install_dll_to_pfx in $WH_DLL_INSTALL "isolate_home" ; do
|
for need_install_dll_to_pfx in $WH_DLL_INSTALL "isolate_home" ; do
|
||||||
if [[ "$need_install_dll_to_pfx" == vcrun201[5-9] ]] ; then
|
|
||||||
sed -i "/${need_install_dll_to_pfx}/d" "$WINEPREFIX/winetricks.log"
|
|
||||||
need_install_dll_to_pfx="vcrun2022"
|
|
||||||
fi
|
|
||||||
if ! grep "$need_install_dll_to_pfx" "$WINEPREFIX/winetricks.log" &>/dev/null ; then
|
if ! grep "$need_install_dll_to_pfx" "$WINEPREFIX/winetricks.log" &>/dev/null ; then
|
||||||
if [[ -z "$WH_DLL_NEED_INSTALL" ]]
|
if [[ -z "$WH_DLL_NEED_INSTALL" ]]
|
||||||
then WH_DLL_NEED_INSTALL="$need_install_dll_to_pfx"
|
then WH_DLL_NEED_INSTALL="$need_install_dll_to_pfx"
|
||||||
@ -1123,13 +1134,15 @@ wine_run () {
|
|||||||
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"
|
||||||
|
|
||||||
if [[ $DEBUG == "0" ]] ; then
|
if [[ -n $LOG_FILE ]] && [[ -f "$LOG_FILE" ]] ; then
|
||||||
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS
|
echo "##### Основные переменные #####" | tee -a "$LOG_FILE"
|
||||||
else
|
env | grep -e "WH_" -e "WINE" -e "DXVK" -e "VKD3D" | tee -a "$LOG_FILE"
|
||||||
print_var WH_WINE_USE WINEARCH WINEPREFIX WINEDLLOVERRIDES WH_WINDOWS_VER | tee "$LOG_FILE"
|
|
||||||
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS 2>&1 | tee -a "$LOG_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
echo "##### Лог WINE #####" | tee -a "$LOG_FILE"
|
||||||
|
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS 2>&1 | tee -a "$LOG_FILE"
|
||||||
|
else
|
||||||
|
$MANGOHUD_RUN "$WINELOADER" "$@" $LAUNCH_PARAMETERS
|
||||||
|
fi
|
||||||
wait_wineserver
|
wait_wineserver
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1345,7 +1358,7 @@ case "${1,,}" in
|
|||||||
install|-i) shift ; run_autoinstall "$@" ;;
|
install|-i) shift ; run_autoinstall "$@" ;;
|
||||||
installed) shift ; check_installed_programs "$1" ;;
|
installed) shift ; check_installed_programs "$1" ;;
|
||||||
run|-r) shift ; run_installed_programs "$1" ;;
|
run|-r) shift ; run_installed_programs "$1" ;;
|
||||||
remove-all) shift ; remove_winehelper "$@ ";;
|
remove-all) shift ; remove_winehelper "$@" ;;
|
||||||
remove-prefix) shift ; remove_prefix "$@" ;;
|
remove-prefix) shift ; remove_prefix "$@" ;;
|
||||||
*)
|
*)
|
||||||
if [[ -f "$1" ]] ; then
|
if [[ -f "$1" ]] ; then
|
||||||
|
Reference in New Issue
Block a user