forked from CastroFidel/winehelper
added installed and run commands
This commit is contained in:
parent
4de5117841
commit
c8ee404c38
72
winehelper
72
winehelper
@ -351,6 +351,7 @@ var_ld_library_path_update () {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##### CREATE DESKTOP FILE #####
|
||||||
create_desktop () {
|
create_desktop () {
|
||||||
local name_desktop="$1"
|
local name_desktop="$1"
|
||||||
local exe_file="$2"
|
local exe_file="$2"
|
||||||
@ -382,13 +383,56 @@ create_desktop () {
|
|||||||
if [[ "$USE_AI_SCRIPTS" == "1" ]] \
|
if [[ "$USE_AI_SCRIPTS" == "1" ]] \
|
||||||
&& [[ -f "$exe_file" ]]
|
&& [[ -f "$exe_file" ]]
|
||||||
then
|
then
|
||||||
grep -e "#!" -e "export" -e "var_" "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" \
|
{
|
||||||
|
echo '#!/usr/bin/env bash'
|
||||||
|
echo "# cmd_name: $AI_SCRIPT"
|
||||||
|
} > "$exe_file".whdb
|
||||||
|
grep -e "info_" -e "#####" -e "export" -e "var_" "$WH_AUTOINSTALL_DIR/$AI_SCRIPT" \
|
||||||
| grep -vE "LAUNCH_PARAMETERS|AUTOINSTALL|WIN_FILE_EXEC|echo" \
|
| grep -vE "LAUNCH_PARAMETERS|AUTOINSTALL|WIN_FILE_EXEC|echo" \
|
||||||
| awk '{$1=$1;print}' > "$exe_file".ppdb
|
| awk '{$1=$1;print}' >> "$exe_file".whdb
|
||||||
print_info "Создан файл настроек для $exe_file"
|
print_info "Создан файл настроек для $exe_file"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
##### INSTALLED PROGRAMS #####
|
||||||
|
check_installed_programs () {
|
||||||
|
for desktop_file in "$USER_WORK_PATH"/*.desktop ; do
|
||||||
|
if [[ ! -f "$desktop_file" ]] ; then
|
||||||
|
print_info "Установленные программы не найдены."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
EXE_PATH="$(grep "Exec" "$desktop_file" | awk -F'"' '{print $4}')"
|
||||||
|
case "$1" in
|
||||||
|
check_only)
|
||||||
|
if [[ -z $2 ]] ; then
|
||||||
|
print_error "Нет аргумента для проверки файла запуска!"
|
||||||
|
print_info "Список установленных программ:"
|
||||||
|
check_installed_programs
|
||||||
|
exit 1
|
||||||
|
elif [[ "$EXE_PATH" =~ ${2}$ ]] ; then
|
||||||
|
export EXE_PATH
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
fatal "Не найден файл запуска для $2"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
if [[ -f "$EXE_PATH.whdb" ]] ; then
|
||||||
|
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"
|
||||||
|
echo -e "$WH_INFO_RU\n"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
run_installed_programs () {
|
||||||
|
if check_installed_programs check_only "$1" ; then
|
||||||
|
/usr/bin/env bash -c "\"$RUN_SCRIPT\" \"$EXE_PATH\"" &
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
##### USED WINED3D LIBRARY #####
|
##### USED WINED3D LIBRARY #####
|
||||||
init_opengl () {
|
init_opengl () {
|
||||||
@ -706,24 +750,24 @@ kill_wine () {
|
|||||||
|
|
||||||
init_database () {
|
init_database () {
|
||||||
if [[ -f "$WIN_FILE_EXEC" ]] ; then
|
if [[ -f "$WIN_FILE_EXEC" ]] ; then
|
||||||
PPDB="$(basename "$WIN_FILE_EXEC" .exe)"
|
WHDB="$(basename "$WIN_FILE_EXEC" .exe)"
|
||||||
if [[ -f "$WIN_FILE_EXEC".ppdb ]] ; then
|
if [[ -f "$WIN_FILE_EXEC".whdb ]] ; then
|
||||||
PPDB_FILE="$WIN_FILE_EXEC".ppdb
|
WHDB_FILE="$WIN_FILE_EXEC".whdb
|
||||||
else
|
else
|
||||||
orig_IFS="$IFS"
|
orig_IFS="$IFS"
|
||||||
IFS=$'\n'
|
IFS=$'\n'
|
||||||
WH_FIND_DB_FILE="$(grep -ilw "#$PPDB.exe" "$WH_DB_DIR"/* )"
|
WH_FIND_DB_FILE="$(grep -ilw "#$WHDB.exe" "$WH_DB_DIR"/* )"
|
||||||
if [[ $(echo "$WH_FIND_DB_FILE" | wc -l) -gt 1 ]] ; then
|
if [[ $(echo "$WH_FIND_DB_FILE" | wc -l) -gt 1 ]] ; then
|
||||||
print_error "Найдено более одного файла настроек: $PPDB.exe"
|
print_error "Найдено более одного файла настроек: $WHDB.exe"
|
||||||
PPDB_FILE="$(echo "$WH_FIND_DB_FILE" | head -n1)"
|
WHDB_FILE="$(echo "$WH_FIND_DB_FILE" | head -n1)"
|
||||||
else
|
else
|
||||||
PPDB_FILE="$WH_FIND_DB_FILE"
|
WHDB_FILE="$WH_FIND_DB_FILE"
|
||||||
fi
|
fi
|
||||||
IFS="$orig_IFS"
|
IFS="$orig_IFS"
|
||||||
fi
|
fi
|
||||||
if [[ "$PPDB_FILE" ]] ; then
|
if [[ "$WHDB_FILE" ]] ; then
|
||||||
print_info "Используется файл настроек: $PPDB_FILE"
|
print_info "Используется файл настроек: $WHDB_FILE"
|
||||||
. "$PPDB_FILE"
|
. "$WHDB_FILE"
|
||||||
else
|
else
|
||||||
print_warning "Файл настроек не найден. Пропускаем."
|
print_warning "Файл настроек не найден. Пропускаем."
|
||||||
fi
|
fi
|
||||||
@ -793,6 +837,8 @@ wh_info () {
|
|||||||
|
|
||||||
Команды:
|
Команды:
|
||||||
install|-i [скрипт установки] если без аргументов, то выводит список возможных установочных скриптов
|
install|-i [скрипт установки] если без аргументов, то выводит список возможных установочных скриптов
|
||||||
|
installed|run список установленных программ
|
||||||
|
run [программа.exe] запуск программы (отладка)
|
||||||
|
|
||||||
Параметры:
|
Параметры:
|
||||||
--help показать эту справку и выйти
|
--help показать эту справку и выйти
|
||||||
@ -818,6 +864,8 @@ case "${1,,}" in
|
|||||||
winetricks) shift ; update_winetricks ; prepair_wine ; "$WINETRICKS" -q "$@" ;;
|
winetricks) shift ; update_winetricks ; prepair_wine ; "$WINETRICKS" -q "$@" ;;
|
||||||
desktop) shift ; create_desktop "$@" ; exit 0 ;;
|
desktop) shift ; create_desktop "$@" ; exit 0 ;;
|
||||||
install|-i) shift ; run_autoinstall "$1" ;;
|
install|-i) shift ; run_autoinstall "$1" ;;
|
||||||
|
installed) shift ; check_installed_programs "$1" ;;
|
||||||
|
run|-r) shift ; run_installed_programs "$1" ;;
|
||||||
*)
|
*)
|
||||||
if [[ -f "$1" ]] ; then
|
if [[ -f "$1" ]] ; then
|
||||||
WIN_FILE_EXEC="$(readlink -f "$1")"
|
WIN_FILE_EXEC="$(readlink -f "$1")"
|
||||||
|
Loading…
Reference in New Issue
Block a user