forked from CastroFidel/PortWINE
		
	
		
			
				
	
	
		
			167 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/sh
 | ||
| # License GPL
 | ||
| ########################################################################
 | ||
| clear && echo '
 | ||
| ████─████─████─███─█───█─███─█──█─███
 | ||
| █──█─█──█─█──█──█──█───█──█──██─█─█
 | ||
| ████─█──█─████──█──█─█─█──█──█─██─███
 | ||
| █────█──█─█─█───█──█████──█──█──█─█
 | ||
| █────████─█─█───█───█─█──███─█──█─███
 | ||
| 
 | ||
| '
 | ||
| ########################################################################
 | ||
| export gamedir="DIRNAME"
 | ||
| export gamename="NAME"
 | ||
| export portname="PortNAME"
 | ||
| export port_ver=XX
 | ||
| ########################################################################
 | ||
| export PROGS_INST=""
 | ||
| export vexit=0
 | ||
| for PROGS in "wget" "curl" "zenity" "tar" 
 | ||
| do
 | ||
| 	if [ ! -x "`which "${PROGS}" 2>/dev/null`" ];then
 | ||
| 		PROGS_INST="${PROGS_INST} ${PROGS}"
 | ||
| 		vexit=1
 | ||
| 	fi
 | ||
| done
 | ||
| if [ "${vexit}" -eq "1" ];then
 | ||
|     echo "You will need to install: ${PROGS_INST}, and restart the script" 
 | ||
|     exit 1
 | ||
| fi
 | ||
| ########################################################################
 | ||
| cd "$(dirname "`readlink -f "$0"`")"
 | ||
| links="$(pwd)"
 | ||
| setup_script="${portname}"-"${port_ver}"
 | ||
| ARCH_NAME="${setup_script}.tar.xz"
 | ||
| deflink="/home/${USER}/PortWINE/${portname}"
 | ||
| [ $(id -u) -eq 0 ] && echo "Do not run the script from the superuser!" && zenity --error --text "Do not run the script from the superuser!" 2> /dev/null  && exit 1
 | ||
| ########################################################################
 | ||
| SET_LANG=`zenity --title  "Install $portname" --text "Select the installation language" --list --radiolist \
 | ||
| --column="Set:" --column "Language:" \
 | ||
| TRUE "Russian" \
 | ||
| FALSE "English" ` 2> /dev/null  
 | ||
| if [ $? -eq 1 ];then exit 1; fi
 | ||
| case $SET_LANG in
 | ||
| 	"Russian")
 | ||
| 		INFO_TEXT="Вы запустили установщик PortWINE ${gamename} версии ${port_ver}. \n\nЭто не коммерческий продукт и развивается исключительно за идею и Ваши пожертвования. \nВсе права сторонего програмного обеспечения принадлежат их владельцам! \nПродолжая установку вы автоматически соглашаетесь с данными условиями." ;;	
 | ||
| 	"English")
 | ||
| 		INFO_TEXT="You run the installer PortWINE ${gamename} v. ${port_ver}. \n\nThis is not a commercial product and developed exclusively for the idea and donate. \nAll rights to third-party software belong to their respective owners! \nContinuing the installation of you agree to these terms." ;;
 | ||
| esac
 | ||
| `zenity --info --title "INFO" --text "$INFO_TEXT" --no-wrap ` 2> /dev/null 
 | ||
| if [ $? -eq 1 ];then echo "error" && exit 1; fi
 | ||
| ########################################################################
 | ||
| case $SET_LANG in
 | ||
| 	"Russian")
 | ||
| 		inst1=`zenity --title  "Install ${portname}" --text "Выберите путь для установки (обновления) порта,\nили оставьте его по умолчанию." --list --radiolist --width=350 --height=220 \
 | ||
| 		--column="Выбор" --column "Путь:" \
 | ||
| 		TRUE "${deflink}" \
 | ||
| 		FALSE "Другой путь..." ` 2> /dev/null
 | ||
| 		if [ $? -eq 1 ];then exit 1; fi
 | ||
| 		case $inst1 in
 | ||
| 			"${deflink}")
 | ||
| 				D_PATH="${deflink}" ;;	
 | ||
| 			"Другой путь...")
 | ||
| 				D_PATH=`zenity --file-selection --directory --title="Выберите путь..." ` 
 | ||
|                 D_PATH="${D_PATH}/${portname}" ;;
 | ||
|         esac ;;
 | ||
| 	"English")
 | ||
| 		inst1=`zenity --title  "Install ${portname}" --text "Select the installation path (update) port,\nor leave it in default." --list --radiolist --width=350 --height=220 \
 | ||
| 		--column="Set..." --column "Path:" \
 | ||
| 		TRUE "${deflink}" \
 | ||
| 		FALSE "Other path..." ` 2> /dev/null
 | ||
| 		if [ $? -eq 1 ];then exit 1; fi
 | ||
| 		case $inst1 in
 | ||
| 			"${deflink}")
 | ||
| 				D_PATH="${deflink}" ;;	
 | ||
| 			"Other path...")
 | ||
| 				D_PATH=`zenity --file-selection --directory --title="Select the path..." ` 
 | ||
| 				D_PATH="${D_PATH}/${portname}" ;;
 | ||
| 		esac ;;
 | ||
| esac
 | ||
| if [ $? -eq 1 ];then echo "error" && exit 1; fi
 | ||
| ########################################################################
 | ||
| case $SET_LANG in
 | ||
| 	"Russian")
 | ||
| 		zen() {
 | ||
| 		zenity --progress --title="Установка..." --text="Настройка ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1  
 | ||
| 		} ;;
 | ||
| 	"English")
 | ||
| 		zen() {
 | ||
| 		zenity --progress --title="Install..." --text="Install ${portname}" --pulsate --auto-close --auto-kill --width=450 > /dev/null 2>&1  
 | ||
| 		} ;;
 | ||
| esac
 | ||
| if [ $? -eq 1 ];then echo "error" && exit 1; fi
 | ||
| ########################################################################
 | ||
| export PORT_WINE_PATH="${D_PATH}"
 | ||
| if [ ! -d "${PORT_WINE_PATH}" ];then
 | ||
|     mkdir -p "$PORT_WINE_PATH"
 | ||
| else
 | ||
|     for CLEAN_PORT in "dist" "libs" "tmp" "scripts" "pfx/drive_c/windows"
 | ||
|     do
 | ||
|         if [ -d "${PORT_WINE_PATH}/data/${CLEAN_PORT}" ];then
 | ||
|         	rm -fR "${PORT_WINE_PATH}/data/${CLEAN_PORT}"
 | ||
|         fi
 | ||
|     done
 | ||
| 	if [ -d "${PORT_WINE_PATH}/data/pfx/drive_c/Games/${gamedir}" ];then
 | ||
|         export PORT_GAMEDIR="${PORT_WINE_PATH}/data/pfx/drive_c/Games/${gamedir}"
 | ||
|         mv -f "${PORT_GAMEDIR}" "${PORT_GAMEDIR}_old"
 | ||
|     elif [ -d "${PORT_WINE_PATH}/data/pfx/drive_c/Program Files/${gamedir}" ];then
 | ||
|         export PORT_GAMEDIR="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files/${gamedir}"
 | ||
|         mv -f "${PORT_GAMEDIR}" "${PORT_GAMEDIR}_old"
 | ||
|     elif [ -d "${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}" ];then
 | ||
|         export PORT_GAMEDIR="${PORT_WINE_PATH}/data/pfx/drive_c/Program Files (x86)/${gamedir}"
 | ||
|         mv -f "${PORT_GAMEDIR}" "${PORT_GAMEDIR}_old"
 | ||
|     fi
 | ||
| fi
 | ||
| ########################################################################
 | ||
| mkdir -p "${PORT_WINE_PATH}/data/tmp"
 | ||
| echo "${port_ver}" > "${PORT_WINE_PATH}/data/tmp/${portname}_ver"
 | ||
| case $SET_LANG in
 | ||
| 	"Russian")
 | ||
| 		echo "RUS" > "${PORT_WINE_PATH}/data/tmp/${portname}_loc" ;;
 | ||
| 	"English")
 | ||
| 		echo "ENG" > "${PORT_WINE_PATH}/data/tmp/${portname}_loc" ;;
 | ||
| esac
 | ||
| if [ $? -eq 1 ];then echo "error" && exit 1; fi
 | ||
| export config_path="${PORT_WINE_PATH}/data/tmp"
 | ||
| read "update_loc" < "${config_path}/${portname}_loc"
 | ||
| export update_loc=${update_loc}
 | ||
| ########################################################################
 | ||
| cd "${PORT_WINE_PATH}" 
 | ||
| tail -n +167 "${links}/${setup_script}" > "${PORT_WINE_PATH}/${ARCH_NAME}"
 | ||
| tar -Jxvf "${PORT_WINE_PATH}/${ARCH_NAME}" -C "${PORT_WINE_PATH}/" | zen
 | ||
| chmod 755 -R "${PORT_WINE_PATH}"
 | ||
| mv -f "${PORT_WINE_PATH}/${ARCH_NAME}" "${PORT_WINE_PATH}/data/tmp"
 | ||
| sed -n 1,166p "${links}/${setup_script}" > "${PORT_WINE_PATH}/data/tmp/${setup_script}"
 | ||
| ########################################################################
 | ||
| if [ -d "${PORT_GAMEDIR}_old" ];then
 | ||
| 	rm -fR "${PORT_GAMEDIR}"
 | ||
| 	mv -f "${PORT_GAMEDIR}_old" "${PORT_GAMEDIR}"
 | ||
| fi
 | ||
| if [ -d "${PORT_GAMEDIR}" ];then
 | ||
| 	if [ -d "${PORT_GAMEDIR}_rus" ];then
 | ||
|         rm -fR "${PORT_GAMEDIR}_rus"
 | ||
|     fi
 | ||
|     if [ -d "${PORT_GAMEDIR}_eng" ];then
 | ||
|         rm -fR "${PORT_GAMEDIR}_eng"
 | ||
|     fi
 | ||
| elif [ "${update_loc}" = "RUS" ];then
 | ||
| 	if [ -d "${PORT_GAMEDIR}_rus" ];then
 | ||
| 		mv -f "${PORT_GAMEDIR}_rus" "${PORT_GAMEDIR}"
 | ||
|         if [ -d "${PORT_GAMEDIR}_eng" ];then
 | ||
|             rm -fR "${PORT_GAMEDIR}_eng"
 | ||
|         fi
 | ||
|     fi
 | ||
| else
 | ||
|     if [ -d "${PORT_GAMEDIR}_eng" ];then
 | ||
| 		mv -f "${PORT_GAMEDIR}_eng" "${PORT_GAMEDIR}"
 | ||
|         if [ -d "${PORT_GAMEDIR}_rus" ];then
 | ||
|             rm -fR "${PORT_GAMEDIR}_rus"
 | ||
|         fi
 | ||
|     fi
 | ||
| fi
 | ||
| ########################################################################
 | ||
| cd "${PORT_WINE_PATH}/data/scripts"
 | ||
| sh "${PORT_WINE_PATH}/data/scripts/setup" && exit 0
 | ||
| ################################ARCH_BIN################################
 |