install-cross.sh 1.52 KB
#!/bin/bash
myDIR=$(dirname $(readlink -f ${0}))

install_packages() {

	TEMPFILE=$(mktemp)
	
	for spec in $(find ${myDIR} -name "${1}*.spec")
	do
		echo "Parsing ${spec}"
		grep -i "^Requires:" "${spec}" | grep -v "%" | cut -d: -f2- | tr -d '[:blank:]' | cut -d'>' -f1 >> ${TEMPFILE}
		grep -i "^BuildRequires:" "${spec}" | grep -v "%" | cut -d: -f2- | tr -d '[:blank:]'  | cut -d'>' -f1 >> ${TEMPFILE}
	done
	
	cat ${TEMPFILE} \
		| sort --unique \
		| xargs sudo zypper --non-interactive --verbose in

	rm -f ${TEMPFILE}

}

if [ -z ${1} ]; then
	echo "${0} [options]"
	echo ""
	echo "Options:"
	echo ""

	echo "  --ar	Install required OBS repositories for zypper"
	echo "  --32	Install cross compiler for 32 bits windows using zypper"
	echo "  --64	Install cross compiler for 64 bits windows using zypper"
	echo "  --all	Install cross compiler for 32 and 64 bits windows using zypper"
	exit -1
fi


until [ -z "${1}" ]
do
	if [ ${1:0:2} = '--' ]; then
		tmp=${1:2}
		parameter=${tmp%%=*}
		parameter=$(echo $parameter | tr "[:lower:]" "[:upper:]")

		case $parameter in

		AR)
			echo "Adding required repositories"
			sudo zypper ar obs://windows:mingw:win32 windows_mingw_win32
			sudo zypper ar obs://windows:mingw:win64 windows_mingw_win64
			sudo zypper ar obs://home:PerryWerneck:pw3270 home_PerryWerneck_pw3270
			;;

		32)
			install_packages mingw32
			;;

		64)
			install_packages mingw64
			;;

		ALL)
			install_packages mingw32
			install_packages mingw64
			;;


		*)
			value=${tmp##*=}
			eval $parameter=$value
		esac

	fi

	shift
done