Compare commits
8 Commits
0.4.1
...
6b5d7736b6
Author | SHA1 | Date | |
---|---|---|---|
6b5d7736b6 | |||
6ad9d1a47f | |||
d09b1a3439 | |||
aca10b71fe | |||
9c332106c3 | |||
fe8f384681 | |||
b46728e2e2 | |||
fbe8944a0f |
@ -1,5 +1,11 @@
|
|||||||
История изменений:
|
История изменений:
|
||||||
|
|
||||||
|
0.4.3:
|
||||||
|
* исправлено обновление префикса при первом запуске
|
||||||
|
|
||||||
|
0.4.2:
|
||||||
|
* исправлено создание и восстановление резервных копий с разными именами пользователей
|
||||||
|
|
||||||
0.4.1:
|
0.4.1:
|
||||||
* добавлена возможность создания резервной копии префикса:
|
* добавлена возможность создания резервной копии префикса:
|
||||||
winehelper backup-prefix [имя_префикса]
|
winehelper backup-prefix [имя_префикса]
|
||||||
|
67
autoinstall/t-flex-cad17-applications
Normal file
67
autoinstall/t-flex-cad17-applications
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# info_ru: Приложения для T-FLEX CAD 17 (T-FLEX Анализ 17, T-FLEX Динамика 17, T-FLEX Зубчатые передачи 17, T-FLEX ЧПУ 17, T-FLEX Раскрой 17, T-FLEX Электротехника 17, T-FLEX VR 17, T-FLEX Печатные платы 17)
|
||||||
|
########################################################################
|
||||||
|
export WH_WINDOWS_VER="10"
|
||||||
|
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||||
|
export BASE_PFX="tflex17_pfx_x64_v01"
|
||||||
|
export WINEARCH="win64"
|
||||||
|
export WINEPREFIX="tflex17"
|
||||||
|
|
||||||
|
BASE_URL="https://www.tflex.ru/downloads"
|
||||||
|
FILES=(
|
||||||
|
"T-FLEX Analysis 17.zip"
|
||||||
|
"T-FLEX Dynamics 17.zip"
|
||||||
|
"T-FLEX Gears 17.zip"
|
||||||
|
"T-FLEX CAM 17.zip"
|
||||||
|
"T-FLEX Nesting 17.zip"
|
||||||
|
"T-FLEX Electrical 17.zip"
|
||||||
|
"T-FLEX VR 17.zip"
|
||||||
|
"T-FLEX Circuits 17.zip"
|
||||||
|
)
|
||||||
|
UNPACK_APP="${WH_TMP_DIR}/unpack_applications"
|
||||||
|
|
||||||
|
prepair_wine
|
||||||
|
|
||||||
|
# Функция для распаковки файла
|
||||||
|
unpack_file() {
|
||||||
|
local archive="$1"
|
||||||
|
7z x -y "$archive" -o"${UNPACK_APP}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Функция для установки .msi файлов
|
||||||
|
install_msi_files() {
|
||||||
|
for msi_file in "${UNPACK_APP}"/*/*.msi; do
|
||||||
|
if [[ -f "$msi_file" ]]; then
|
||||||
|
echo "Установка $msi_file ..."
|
||||||
|
wine_run_install "$msi_file" /q
|
||||||
|
else
|
||||||
|
echo "Нет .msi файлов для установки в ${UNPACK_APP}/*."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Функция для кодирования URL
|
||||||
|
encode_url() {
|
||||||
|
local file_name="$1"
|
||||||
|
echo "${file_name// /%20}" # Заменяем пробелы на %20
|
||||||
|
}
|
||||||
|
|
||||||
|
# Скачивание всех файлов
|
||||||
|
download_all() {
|
||||||
|
for file_name in "${FILES[@]}"; do
|
||||||
|
local file_url="$(encode_url "$file_name")"
|
||||||
|
local output="${WH_TMP_DIR}/${file_name// /_}"
|
||||||
|
|
||||||
|
echo "Скачивание $file_name..."
|
||||||
|
if try_download "$BASE_URL/$file_url" "$output"; then
|
||||||
|
unpack_file "$output"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Автоматически скачиваем и устанавливаем все файлы
|
||||||
|
download_all
|
||||||
|
install_msi_files
|
||||||
|
|
||||||
|
rm -f ${WH_TMP_DIR}/*.zip
|
||||||
|
try_remove_dir "${UNPACK_APP}"
|
65
autoinstall/t-flex-cad17-resources
Normal file
65
autoinstall/t-flex-cad17-resources
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
# info_ru: Обучающие материалы, примеры, бесплатные библиотеки для T-FLEX CAD 17 (Учебное пособие 17, Стандартные элементы 17, Элементы уплотнительной техники 17, Станочные приспособления 17, Детали штампов листовой штамповки 17, Детали пресс-форм 17, Примеры 17)
|
||||||
|
########################################################################
|
||||||
|
export WH_WINDOWS_VER="10"
|
||||||
|
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||||
|
export BASE_PFX="tflex17_pfx_x64_v01"
|
||||||
|
export WINEARCH="win64"
|
||||||
|
export WINEPREFIX="tflex17"
|
||||||
|
|
||||||
|
BASE_URL="https://www.tflex.ru/downloads"
|
||||||
|
FILES=(
|
||||||
|
"T-FLEX Tutorial 17.zip"
|
||||||
|
"Standard parts 17.zip"
|
||||||
|
"Elements of sealing technology 17.zip"
|
||||||
|
"Machine tools 17.zip"
|
||||||
|
"Standard parts for sheet metal dies 17.zip"
|
||||||
|
"Standard Mold Parts 17.zip"
|
||||||
|
"Examples 17.zip"
|
||||||
|
)
|
||||||
|
UNPACK_RESOURCES="${WH_TMP_DIR}/unpack_resources"
|
||||||
|
|
||||||
|
prepair_wine
|
||||||
|
# Функция для распаковки файла
|
||||||
|
unpack_file() {
|
||||||
|
local archive="$1"
|
||||||
|
7z x -y "$archive" -o"${UNPACK_RESOURCES}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Функция для установки .msi файлов
|
||||||
|
install_msi_files() {
|
||||||
|
for msi_file in "${UNPACK_RESOURCES}"/*/*.msi; do
|
||||||
|
if [[ -f "$msi_file" ]]; then
|
||||||
|
echo "Установка $msi_file ..."
|
||||||
|
wine_run_install "$msi_file" /q
|
||||||
|
else
|
||||||
|
echo "Нет .msi файлов для установки в ${UNPACK_RESOURCES}/unpack_dop/*."
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Функция для кодирования URL
|
||||||
|
encode_url() {
|
||||||
|
local file_name="$1"
|
||||||
|
echo "${file_name// /%20}" # Заменяем пробелы на %20
|
||||||
|
}
|
||||||
|
|
||||||
|
# Скачивание всех файлов
|
||||||
|
download_all() {
|
||||||
|
for file_name in "${FILES[@]}"; do
|
||||||
|
local file_url="$(encode_url "$file_name")"
|
||||||
|
local output="${WH_TMP_DIR}/${file_name// /_}"
|
||||||
|
|
||||||
|
echo "Скачивание $file_name..."
|
||||||
|
if try_download "$BASE_URL/$file_url" "$output"; then
|
||||||
|
unpack_file "$output"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Автоматически скачиваем и устанавливаем все файлы
|
||||||
|
download_all
|
||||||
|
install_msi_files
|
||||||
|
|
||||||
|
rm -f ${WH_TMP_DIR}/*.zip
|
||||||
|
try_remove_dir "${UNPACK_RESOURCES}"
|
70
winehelper
70
winehelper
@ -6,6 +6,27 @@ if [[ $(id -u) -eq 0 ]] ; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
##### DEFAULT PATH #####
|
||||||
|
SCRIPT_NAME="$(basename "$0")"
|
||||||
|
if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
|
||||||
|
# переменные для установленного WineHelper в систему
|
||||||
|
USER_WORK_PATH="$HOME/.local/share/$SCRIPT_NAME"
|
||||||
|
RUN_SCRIPT="/usr/bin/$SCRIPT_NAME"
|
||||||
|
DATA_PATH="/usr/share/$SCRIPT_NAME"
|
||||||
|
else
|
||||||
|
# переменные для тестового запуска WineHelper из репозитория
|
||||||
|
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
|
||||||
|
RUN_SCRIPT="$(realpath "$0")"
|
||||||
|
DATA_PATH="$(dirname "$RUN_SCRIPT")"
|
||||||
|
|
||||||
|
# минимальная проверка синтаксиса скриптов
|
||||||
|
for self_check_script in "$RUN_SCRIPT" \
|
||||||
|
"$DATA_PATH/dependencies.sh" "$DATA_PATH/autoinstall"/* \
|
||||||
|
"$DATA_PATH/manualinstall"/* "$DATA_PATH/database"/*
|
||||||
|
do /usr/bin/bash -n "$self_check_script" || exit 1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
##### MESSAGES FUNCTIONS #####
|
##### MESSAGES FUNCTIONS #####
|
||||||
print_error () { printf "\E[31m%s Ошибка: $@ %s\e[0m\n" ;}
|
print_error () { printf "\E[31m%s Ошибка: $@ %s\e[0m\n" ;}
|
||||||
print_warning () { printf "\E[33m%s Предупреждение: $@ %s\e[0m\n" ;}
|
print_warning () { printf "\E[33m%s Предупреждение: $@ %s\e[0m\n" ;}
|
||||||
@ -53,17 +74,6 @@ fi
|
|||||||
WINETRICKS_VERSION="20250102"
|
WINETRICKS_VERSION="20250102"
|
||||||
|
|
||||||
##### DEFAULT VARIABLES #####
|
##### DEFAULT VARIABLES #####
|
||||||
SCRIPT_NAME="$(basename "$0")"
|
|
||||||
if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
|
|
||||||
USER_WORK_PATH="$HOME/.local/share/$SCRIPT_NAME"
|
|
||||||
RUN_SCRIPT="/usr/bin/$SCRIPT_NAME"
|
|
||||||
DATA_PATH="/usr/share/$SCRIPT_NAME"
|
|
||||||
else
|
|
||||||
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
|
|
||||||
RUN_SCRIPT="$(realpath "$0")"
|
|
||||||
DATA_PATH="$(dirname "$RUN_SCRIPT")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
WH_VULKAN_LIBDIR="$USER_WORK_PATH/vulkan"
|
WH_VULKAN_LIBDIR="$USER_WORK_PATH/vulkan"
|
||||||
WH_PREFIXES_DIR="$USER_WORK_PATH/prefixes"
|
WH_PREFIXES_DIR="$USER_WORK_PATH/prefixes"
|
||||||
WH_DIST_DIR="$USER_WORK_PATH/dist"
|
WH_DIST_DIR="$USER_WORK_PATH/dist"
|
||||||
@ -228,18 +238,20 @@ create_new_dir () {
|
|||||||
|
|
||||||
unpack () {
|
unpack () {
|
||||||
print_info "Запуск распаковки архива $1"
|
print_info "Запуск распаковки архива $1"
|
||||||
|
local command outarg
|
||||||
case $1 in
|
case $1 in
|
||||||
*.tar.xz) local command="tar -Jxhf";;
|
*.tar.xz) command="tar -Jxhf" ; outarg="-C " ;;
|
||||||
*.tar.gz) local command="tar -xhzf" ;;
|
*.tar.gz) command="tar -xhzf" ; outarg="-C " ;;
|
||||||
*.tar.zst) local command="tar -I zstd -xhf" ;;
|
*.tar.zst) command="tar -I zstd -xhf" ; outarg="-C " ;;
|
||||||
*.tar) local command="tar -xhf" ;;
|
*.tar) command="tar -xhf" ; outarg="-C " ;;
|
||||||
|
*.zip|*.exe) command="7z x -y" ; outarg="-o" ;;
|
||||||
esac
|
esac
|
||||||
create_new_dir "$2"
|
create_new_dir "$2"
|
||||||
if $command "$1" -C "$2" ; then
|
if $command "$1" ${outarg}"$2" ; then
|
||||||
print_ok "Архив $1 распакован."
|
print_ok "Файл $1 распакован."
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
print_error "Распаковать архив $1 не удалось!"
|
print_error "Распаковать файл $1 не удалось!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -923,6 +935,12 @@ init_wineprefix () {
|
|||||||
then try_force_link_dir "$DRIVE_C/users/$USER" "$DRIVE_C/users/xuser"
|
then try_force_link_dir "$DRIVE_C/users/$USER" "$DRIVE_C/users/xuser"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$WINEPREFIX/.update-timestamp" ]] ; then
|
||||||
|
print_info "Обновление префикса $WINEPREFIX."
|
||||||
|
"$WINELOADER" wineboot -u
|
||||||
|
wait_wineserver
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]]
|
if [[ ! -L "$WINEPREFIX/dosdevices/h:" ]]
|
||||||
then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:"
|
then try_force_link_dir "$HOME" "$WINEPREFIX/dosdevices/h:"
|
||||||
fi
|
fi
|
||||||
@ -1324,6 +1342,8 @@ backup_prefix() {
|
|||||||
local backup_archive_name="backup_${PREFIX_NAME}_$(date +%Y.%m.%d).whpack"
|
local backup_archive_name="backup_${PREFIX_NAME}_$(date +%Y.%m.%d).whpack"
|
||||||
local backup_dest_path="$backup_base_dir/$backup_archive_name"
|
local backup_dest_path="$backup_base_dir/$backup_archive_name"
|
||||||
local temp_backup_dir="$WH_TMP_DIR/backup_${PREFIX_NAME}_$(date +%Y.%m.%d)"
|
local temp_backup_dir="$WH_TMP_DIR/backup_${PREFIX_NAME}_$(date +%Y.%m.%d)"
|
||||||
|
local temp_prefix_dir="$temp_backup_dir/prefixes/$PREFIX_NAME"
|
||||||
|
local temp_users_dir="$temp_prefix_dir/drive_c/users"
|
||||||
|
|
||||||
print_info "Начало резервного копирования префикса: $PREFIX_NAME"
|
print_info "Начало резервного копирования префикса: $PREFIX_NAME"
|
||||||
create_new_dir "$temp_backup_dir"
|
create_new_dir "$temp_backup_dir"
|
||||||
@ -1331,7 +1351,19 @@ backup_prefix() {
|
|||||||
create_new_dir "$temp_backup_dir/dist/"
|
create_new_dir "$temp_backup_dir/dist/"
|
||||||
|
|
||||||
print_info "Подготовка префикса к упаковке..."
|
print_info "Подготовка префикса к упаковке..."
|
||||||
if cp -a "$WINEPREFIX" "$temp_backup_dir/prefixes/$PREFIX_NAME" ; then
|
if cp -a "$WINEPREFIX" "$temp_prefix_dir" ; then
|
||||||
|
try_remove_dir "$temp_prefix_dir/dosdevices"
|
||||||
|
try_remove_file "$temp_prefix_dir/.update-timestamp"
|
||||||
|
if [[ -d "$temp_users_dir/$USER" ]] \
|
||||||
|
&& [[ ! -L "$temp_users_dir/$USER" ]]
|
||||||
|
then
|
||||||
|
if [[ -L "$temp_users_dir/xuser" ]]
|
||||||
|
then try_remove_dir "$temp_users_dir/xuser"
|
||||||
|
fi
|
||||||
|
create_new_dir "$temp_users_dir/xuser"
|
||||||
|
cp -fr "$temp_users_dir/$USER"/* "$temp_users_dir/xuser/"
|
||||||
|
fi
|
||||||
|
try_remove_dir "$temp_users_dir/$USER"
|
||||||
print_ok "Директория префикса подготовлена."
|
print_ok "Директория префикса подготовлена."
|
||||||
else
|
else
|
||||||
print_error "Не удалось подготовить директорию префикса."
|
print_error "Не удалось подготовить директорию префикса."
|
||||||
|
Reference in New Issue
Block a user