Compare commits

..

14 Commits

17 changed files with 172 additions and 10 deletions

View File

@ -1,5 +1,8 @@
История изменений:
0.4.6:
* добавлено автодопонение команд для bash (bash_completion)
0.4.5:
* скорректирована проверка синтаксиса скриптов

BIN
image/animator.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
image/commfort-client.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
image/commfort-server.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
image/ol.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
image/resmanagdb.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
image/rtsim.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
image/sdedit.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
image/sexplore.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
image/simswitch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
image/swimitator.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -5,6 +5,8 @@
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
61bec1230b37b8fcc69fd45f848b44fd88cc41fcdd5dc3080336d7da63660f40 wine-7.16.1-alt1-amd64.tar.xz
6fea17fd131f57c2ebf7ca4c60d3c5a9e819afe16e5d0b77ecb750da99ae0e38 wine-7.16.1-alt1-i586.tar.xz
##### DXVK #####

View File

@ -0,0 +1,20 @@
#!/usr/bin/env bash
# info_ru: Локальный корпоративный чат/мессенджер с поддержкой видеоконференций.
########################################################################
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="commfort"
export PROG_NAME="CommFort"
export PROG_ICON="commfort-client"
export WH_WINDOWS_VER="10"
export WINEARCH="win32"
AUTOINSTALL_MSI="${WH_TMP_DIR}/commfort_client.msi"
prepair_wine
if try_download "https://www.commfort.com/download/commfort_client.msi" "${AUTOINSTALL_MSI}" ; then
wine_run_install "${AUTOINSTALL_MSI}" /q
try_remove_file "$AUTOINSTALL_MSI"
WIN_FILE_EXEC="$DRIVE_C/Program Files/CommFort/CommFort.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
fi

View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
# info_ru: (Сервер) Локальный корпоративный чат/мессенджер с поддержкой видеоконференций.
########################################################################
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
export WINEPREFIX="commfort"
export PROG_NAME="CommFort server"
export PROG_ICON="commfort-server"
export WH_WINDOWS_VER="10"
export WINEARCH="win32"
PACKZIP="${WH_TMP_DIR}/commfort_server.zip"
AUTOINSTALL_UNPACK="${WH_TMP_DIR}/commfort_server"
AUTOINSTALL_EXE="${WH_TMP_DIR}/commfort_server/commfort_server_599.exe"
prepair_wine
if try_download "https://www.commfort.com/download/commfort_server.zip" "${PACKZIP}" ; then
unpack "${PACKZIP}" "$AUTOINSTALL_UNPACK"
wine_run_install "$AUTOINSTALL_EXE" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-
try_remove_file "$PACKZIP"
try_remove_dir "$AUTOINSTALL_UNPACK"
WIN_FILE_EXEC="$DRIVE_C/Program Files/CommFort_server/CommFort_server.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
fi

25
testinstall/rtsim Normal file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
# info_ru: Цифровая платформа для обучения и оценки специалистов нефтегазовой отрасли.
########################################################################
export WH_WINE_USE="wine_x_tkg_10-0_i586"
export PROG_NAME="РТСИМ.Карьера"
export WINEPREFIX="rtsim"
export PROG_ICON="rtsim"
export WH_WINDOWS_VER="10"
export BASE_PFX="none"
export WINEARCH="win32"
export INSTALL_DLL="dotnet48"
AUTOINSTALL_RAR="${WH_TMP_DIR}/РТСИМ.Карьера.rar"
AUTOINSTALL_MSI="${WH_TMP_DIR}/РТСИМ.Карьера/РТСИМ.Карьера.msi"
prepair_wine
if try_download "https://rtsim.ru/РТСИМ.Карьера.rar" "$AUTOINSTALL_RAR" ; then
unpack "${AUTOINSTALL_RAR}" "${WH_TMP_DIR}"
wine_run_install "$AUTOINSTALL_MSI" /q
try_remove_file "$AUTOINSTALL_RAR"
try_remove_dir "${WH_TMP_DIR}/РТСИМ.Карьера"
WIN_FILE_EXEC="$DRIVE_C/РТСИМ/Карьера/RTsimTrenager.exe"
create_desktop "$PROG_NAME" "$WIN_FILE_EXEC" "$PROG_ICON"
fi

29
testinstall/swman-modus Normal file
View File

@ -0,0 +1,29 @@
#!/usr/bin/env bash
# info_ru: Программный комплекс для энергетики.
########################################################################
export WH_WINE_USE="wine-9.0.14-alt1-amd64"
export WINEPREFIX="swmanmodus"
export BASE_PFX="none"
export WH_WINDOWS_VER="10"
export WINEARCH="win64"
# export INSTALL_DLL=""
prepair_wine
# Ссылка для загрузки дистрибутива меняется в зависимости от версии
AUTOINSTALL_EXE="${WH_TMP_DIR}/modus710.msi"
DRIVE_C_MODUS="$DRIVE_C/Program Files (x86)/Modus 7.10/bin"
if try_download "https://www.swman.ru/download/710/modus710.msi" "${AUTOINSTALL_EXE}" ; then
wine_run_install "${AUTOINSTALL_EXE}" /q
try_remove_file "$AUTOINSTALL_EXE"
declare -a PROG_NAME=("Аниматор" "Диспетчер" "Графический Редактор" "Имитатор АРМ" "Просмотрщик" "Просмот Результатов" "Тренажер")
declare -a PROG_ICON=("animator" "ol" "sdedit" "swimitator" "sexplore" "resmanagdb" "simswitch")
declare -a WIN_FILE_EXEC=("${DRIVE_C_MODUS}/Animator.exe" "${DRIVE_C_MODUS}/OL.exe" "${DRIVE_C_MODUS}/Sdedit32.exe" "${DRIVE_C_MODUS}/SwImitator.exe" "${DRIVE_C_MODUS}/SExplore.exe" "${DRIVE_C_MODUS}/ResManagDB.exe" "${DRIVE_C_MODUS}/SimSwitch.exe")
for i in "${!PROG_NAME[@]}"; do
create_desktop "${PROG_NAME[i]}" "${WIN_FILE_EXEC[i]}" "${PROG_ICON[i]}"
done
fi

View File

@ -22,7 +22,8 @@ else
# минимальная проверка синтаксиса скриптов
for self_check_script in "$RUN_SCRIPT" \
"$DATA_PATH/dependencies.sh" "$DATA_PATH/autoinstall"/* \
"$DATA_PATH/manualinstall"/* "$DATA_PATH/database"/*
"$DATA_PATH/manualinstall"/* "$DATA_PATH/testinstall"/* \
"$DATA_PATH/database"/*
do /usr/bin/env bash -n "$self_check_script" || exit 1
done
fi
@ -238,6 +239,12 @@ create_new_dir () {
}
unpack () {
if [[ $1 == "--skip-xattr" ]] ; then
local skip_xattr="1"
shift
else
unset skip_xattr
fi
print_info "Запуск распаковки архива $1"
local command outarg
case $1 in
@ -245,15 +252,17 @@ unpack () {
*.tar.gz) command="tar -xhzf" ; outarg="-C " ;;
*.tar.zst) command="tar -I zstd -xhf" ; outarg="-C " ;;
*.tar) command="tar -xhf" ; outarg="-C " ;;
*.zip|*.exe|*.rar) command="7z x -y" ; outarg="-o" ;;
*.zip|*.exe|*.rar) command="7z x -y -bso0" ; outarg="-o" ;;
esac
create_new_dir "$2"
if $command "$1" ${outarg}"$2" ; then
print_ok "Файл $1 распакован."
return 0
else
fatal "Распаковать файл $1 не удалось!"
if [[ $skip_xattr == "1" ]] \
&& $command "$1" ${outarg}"$2" 2>&1 | grep -v "xattr"
then print_ok "Файл $1 распакован."
elif $command "$1" ${outarg}"$2"
then print_ok "Файл $1 распакован."
else fatal "Распаковать файл $1 не удалось!"
fi
return 0
}
try_get_page () {
@ -737,7 +746,7 @@ init_wine_ver () {
fi
else
# use system WINE
if ! command -v "wine" &>/dev/null ; then
if ! rpm -q "wine" 1>/dev/null ; then
fatal "system WINE - not found."
fi
export WINEDIR="/usr"
@ -869,11 +878,11 @@ get_base_pfx () {
if [[ ! -f "$PFX_TMP/$FILE_NAME_PFX.tar.xz" ]] ; then
print_info "Загрузка базового префикса: ${FILE_NAME_PFX}"
if try_download "$PFX_URL" "$PFX_TMP/$FILE_NAME_PFX.tar.xz" check256sum
then unpack "$PFX_TMP/$FILE_NAME_PFX.tar.xz" "$WINEPREFIX/"
then unpack --skip-xattr "$PFX_TMP/$FILE_NAME_PFX.tar.xz" "$WINEPREFIX/"
else try_remove_file "$PFX_TMP/$FILE_NAME_PFX.tar.xz"
fi
else
if ! unpack "$PFX_TMP/$FILE_NAME_PFX.tar.xz" "$WINEPREFIX/" ; then
if ! unpack --skip-xattr "$PFX_TMP/$FILE_NAME_PFX.tar.xz" "$WINEPREFIX/" ; then
try_remove_file "${PFX_TMP}/${FILE_NAME_PFX}.tar.xz"
get_base_pfx "$FILE_NAME_PFX"
fi
@ -1369,6 +1378,55 @@ remove_winehelper () {
fi
}
create_base_pfx () {
export WINEPREFIX="$1"
check_prefix_var
local prefix_dir="$WINEPREFIX"
local drive_c_dir="$prefix_dir/drive_c"
local users_dir="$drive_c_dir/users"
local archive_path="$WH_TMP_DIR/pfx/new_${PREFIX_NAME}.tar.xz"
try_copy_dir "$prefix_dir" "${prefix_dir}_bak"
for wtlog in workaround isolate internal winxp win2 win7 win10
do sed -i "/$wtlog/d" "$prefix_dir/winetricks.log"
done
if [[ -d "$users_dir/$USER" ]] \
&& [[ ! -L "$users_dir/$USER" ]]
then
if [[ -L "$users_dir/xuser" ]]
then try_remove_dir "$users_dir/xuser/"
fi
create_new_dir "$users_dir/xuser/"
cp -fr "$users_dir/$USER"/* "$users_dir/xuser/"
fi
try_remove_file "$prefix_dir/.update-timestamp"
try_remove_file "$prefix_dir/.firstboot"
try_remove_file "$prefix_dir/last.conf"
try_remove_dir "$prefix_dir/dosdevices/"
try_remove_dir "$users_dir/$USER"
try_remove_dir "$users_dir/xuser/AppData/Local/Temp/"
try_remove_dir "$drive_c_dir/ProgramData/Package Cache/"
try_remove_dir "$drive_c_dir/windows/temp/"
try_remove_dir "$drive_c_dir/windows/Installer/"
rm -fr "$drive_c_dir/windows/Microsoft.NET"/*/*/SetupCache/
cd "$prefix_dir"
if tar --no-xattrs -c -I 'xz --memlimit=8000MiB -9 -T0' -f "$archive_path" ./* ; then
print_ok "Архив создан по пути: $archive_path"
xdg-open "$(dirname "$archive_path")" &
cd -
else
try_remove_file "$archive_path"
cd -
fatal "Не удалось создать архив."
fi
}
backup_prefix() {
export WINEPREFIX="$1"
check_prefix_var
@ -1585,6 +1643,7 @@ case "$arg1" in
restore-prefix) restore_prefix "$@" ;;
remove-all) remove_winehelper "$@" ;;
remove-prefix) remove_prefix "$@" ;;
create-base-pfx) create_base_pfx "$@" ;;
*)
if [[ -f "$arg1" ]] ; then
WIN_FILE_EXEC="$(readlink -f "$arg1")"