Compare commits

...

4 Commits

Author SHA1 Message Date
Mikhail Tergoev
1061f16349 updated scada 2025-03-28 16:25:47 +03:00
Mikhail Tergoev
220fff4a4f info for AI: recommended not to change the path 2025-03-28 16:25:25 +03:00
Mikhail Tergoev
c39fadd0dc added kill_autostart 2025-03-28 15:23:16 +03:00
Mikhail Tergoev
f8e182ad3a added auto search for executable file 2025-03-28 15:22:26 +03:00
2 changed files with 36 additions and 4 deletions

@ -2,7 +2,7 @@
# info_ru: Это мощный, современный инструмент быстрой и качественной разработки АСУТП # info_ru: Это мощный, современный инструмент быстрой и качественной разработки АСУТП
######################################################################## ########################################################################
export WH_AUTOINSTALL="1" export WH_AUTOINSTALL="1"
export WH_WINE_USE="wine_x_tkg_10-0_i586" # wine-9.0.9-alt1-i586 export WH_WINE_USE="wine_x_tkg_10-0_i586" # wine-9.0.9-alt1-i586"
export WINEPREFIX="scada-krug-2000" export WINEPREFIX="scada-krug-2000"
export PROG_NAME="SCADA КРУГ 2000" export PROG_NAME="SCADA КРУГ 2000"
export PROG_ICON="krugtaskmanager" export PROG_ICON="krugtaskmanager"
@ -15,11 +15,10 @@ export USE_RENDERER="proton"
if [[ -f "$2" ]] ; then if [[ -f "$2" ]] ; then
prepair_wine prepair_wine
kill_autostart "KrugTaskManager.exe" &
wine_run_install "$2" /quiet wine_run_install "$2" /quiet
WIN_FILE_EXEC="$DRIVE_C/Program Files/Krug2000/Bin/KrugTaskManager.exe" WIN_FILE_EXEC="$DRIVE_C/Program Files/Krug2000/Bin/KrugTaskManager.exe"
# TODO: Если файл не найден, использовать автопоиск по имени exe файла $WIN_FILE_EXEC
# TODO: кил автозапуска после установки
create_desktop "Менеджер задач" "$WIN_FILE_EXEC" "$PROG_ICON" create_desktop "Менеджер задач" "$WIN_FILE_EXEC" "$PROG_ICON"
else else
fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру: fatal "Не найден файл установки для $PROG_NAME. Перезапустите по примеру:

@ -369,8 +369,24 @@ create_desktop () {
if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then if [[ -z "$name_desktop" ]] || [[ -z "$exe_file" ]] ; then
fatal "Used: $SCRIPT_NAME --desktop \"desktop_name\" \"path_to_exe\" \"name_png_from_image\"" fatal "Used: $SCRIPT_NAME --desktop \"desktop_name\" \"path_to_exe\" \"name_png_from_image\""
elif [[ ! -f "$exe_file" ]] ; then
print_warning "Для создания ярлыка не найден исполняемый файл: $exe_file"
BASENAME_EXE="$(basename "$exe_file")"
print_info "Запускаем поиск $BASENAME_EXE"
if [[ -z "$DRIVE_C" ]] || [[ ! -d "$DRIVE_C" ]]
then FIND_PATH="$WH_PREFIXES_DIR"
else FIND_PATH="$DRIVE_C"
fi
exe_file="$(find "$FIND_PATH" -type f -not -type l \
-not -path "*/windows/*" -not -path "*/dosdevices/*" \
-iname "$BASENAME_EXE")"
if [[ -z "$exe_file" ]] || [[ ! -f "$exe_file" ]]
then fatal "Для создания ярлыка не найден исполняемый файл: $BASENAME_EXE"
else print_ok "Исполняемый файл $BASENAME_EXE найден по пути $(dirname "$exe_file")/"
fi
fi fi
[[ ! -f "$exe_file" ]] && fatal "Для создания ярлыка не найден исполняемый файл: $exe_file"
[[ ! -f "$icon_file" ]] && icon_file=wine [[ ! -f "$icon_file" ]] && icon_file=wine
{ {
@ -712,6 +728,22 @@ init_wineprefix () {
try_remove_file "$DRIVE_C/windows/system32/winemenubuilder.exe" try_remove_file "$DRIVE_C/windows/system32/winemenubuilder.exe"
} }
##### KILL AUTOSTART AFTER INSTALLING #####
kill_autostart () {
[[ -z "${1}" ]] && fatal "Нет аргумента для функции kill_autostart."
[[ -z "${2}" ]] && SWAIT=3 || SWAIT="${2}"
sleep 5
while ps aux | grep -m 1 -i "$WINESERVER" | grep -v grep &>/dev/null ; do
if [[ -z "$(ps aux | grep -m 1 -i "$1" | grep -v grep | awk '{print $2}')" ]] ; then
print_info "PID для $1 не найден. Ожидаем окончания установки..."
sleep "${SWAIT}"
else
print_ok "PID для $1 найден. Завершаем работу автозапуска приложения."
"$WINESERVER" -k
break
fi
done
}
update_winetricks () { update_winetricks () {
W_TRX_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks" W_TRX_URL="https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks"
@ -851,6 +883,7 @@ wine_run () {
wine_run_install () { wine_run_install () {
print_info "Запускаем установку приложения $PROG_NAME." print_info "Запускаем установку приложения $PROG_NAME."
print_warning "Рекомендуется не менять пути для установки приложения!"
[[ ! -f "$1" ]] && fatal "Нет файла для установки: $1" [[ ! -f "$1" ]] && fatal "Нет файла для установки: $1"
case "${1,,}" in case "${1,,}" in
*.exe) wine_run $WINE_WIN_START "$@" ;; *.exe) wine_run $WINE_WIN_START "$@" ;;