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
|
||||
}
|
||||
|
||||
##### CREATE DESKTOP FILE #####
|
||||
create_desktop () {
|
||||
local name_desktop="$1"
|
||||
local exe_file="$2"
|
||||
@ -382,13 +383,56 @@ create_desktop () {
|
||||
if [[ "$USE_AI_SCRIPTS" == "1" ]] \
|
||||
&& [[ -f "$exe_file" ]]
|
||||
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" \
|
||||
| awk '{$1=$1;print}' > "$exe_file".ppdb
|
||||
| awk '{$1=$1;print}' >> "$exe_file".whdb
|
||||
print_info "Создан файл настроек для $exe_file"
|
||||
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 #####
|
||||
init_opengl () {
|
||||
@ -706,24 +750,24 @@ kill_wine () {
|
||||
|
||||
init_database () {
|
||||
if [[ -f "$WIN_FILE_EXEC" ]] ; then
|
||||
PPDB="$(basename "$WIN_FILE_EXEC" .exe)"
|
||||
if [[ -f "$WIN_FILE_EXEC".ppdb ]] ; then
|
||||
PPDB_FILE="$WIN_FILE_EXEC".ppdb
|
||||
WHDB="$(basename "$WIN_FILE_EXEC" .exe)"
|
||||
if [[ -f "$WIN_FILE_EXEC".whdb ]] ; then
|
||||
WHDB_FILE="$WIN_FILE_EXEC".whdb
|
||||
else
|
||||
orig_IFS="$IFS"
|
||||
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
|
||||
print_error "Найдено более одного файла настроек: $PPDB.exe"
|
||||
PPDB_FILE="$(echo "$WH_FIND_DB_FILE" | head -n1)"
|
||||
print_error "Найдено более одного файла настроек: $WHDB.exe"
|
||||
WHDB_FILE="$(echo "$WH_FIND_DB_FILE" | head -n1)"
|
||||
else
|
||||
PPDB_FILE="$WH_FIND_DB_FILE"
|
||||
WHDB_FILE="$WH_FIND_DB_FILE"
|
||||
fi
|
||||
IFS="$orig_IFS"
|
||||
fi
|
||||
if [[ "$PPDB_FILE" ]] ; then
|
||||
print_info "Используется файл настроек: $PPDB_FILE"
|
||||
. "$PPDB_FILE"
|
||||
if [[ "$WHDB_FILE" ]] ; then
|
||||
print_info "Используется файл настроек: $WHDB_FILE"
|
||||
. "$WHDB_FILE"
|
||||
else
|
||||
print_warning "Файл настроек не найден. Пропускаем."
|
||||
fi
|
||||
@ -793,6 +837,8 @@ wh_info () {
|
||||
|
||||
Команды:
|
||||
install|-i [скрипт установки] если без аргументов, то выводит список возможных установочных скриптов
|
||||
installed|run список установленных программ
|
||||
run [программа.exe] запуск программы (отладка)
|
||||
|
||||
Параметры:
|
||||
--help показать эту справку и выйти
|
||||
@ -818,6 +864,8 @@ case "${1,,}" in
|
||||
winetricks) shift ; update_winetricks ; prepair_wine ; "$WINETRICKS" -q "$@" ;;
|
||||
desktop) shift ; create_desktop "$@" ; exit 0 ;;
|
||||
install|-i) shift ; run_autoinstall "$1" ;;
|
||||
installed) shift ; check_installed_programs "$1" ;;
|
||||
run|-r) shift ; run_installed_programs "$1" ;;
|
||||
*)
|
||||
if [[ -f "$1" ]] ; then
|
||||
WIN_FILE_EXEC="$(readlink -f "$1")"
|
||||
|
Loading…
Reference in New Issue
Block a user