#!/usr/bin/bash

set -xxe

if [ -f /etc/os-release ]; then
	. /etc/os-release
else
	eval `grep -Ew 'VERSION|PATCHLEVEL' /etc/SuSE-release|sed 's@ @@g'`
fi

function add_repo() {
	sudo zypper ar -f "$1" $2 2>/dev/null || true
}

REMOUNT_DEV=0
SCM=0

if ! mount | grep -q 'addr=[^,]*:[^,]*:'; then
	for DEV in `ls -d /sys/class/net/*`; do
		DEV=`basename $DEV`
		sudo ip -6 r flush dev $DEV
		sudo ip -6 a flush dev $DEV
	done
fi
sudo sed -i 's@nameserver.*:@@' /etc/resolv.conf

QEMU=qemu-kvm

case "$VERSION" in
	11.[34])
		add_repo 'http://dist.suse.de/ibs/SUSE:/Tools/SUSE_SLE-11-SP3_Update/SUSE:Tools.repo'
		add_repo 'http://download.opensuse.org/repositories/devel:/tools:/scm/SLE_11_SP4/devel:tools:scm.repo'
		add_repo 'http://dist.suse.de/ibs/SUSE:/CA/SLE_11_SP4/SUSE:CA.repo'
		add_repo 'http://download.suse.de/ibs/home:/jirislaby:/arch-preinstall/SLE_11_SP4/home:jirislaby:arch-preinstall.repo'
		SCM=1
		QEMU=kvm
	;;
	12-SP1)
		add_repo 'http://dist.suse.de/ibs/SUSE:/Tools/SLE_12/SUSE:Tools.repo'
		add_repo 'http://dist.suse.de/ibs/SUSE:/CA/SLE_12_SP1/SUSE:CA.repo'
		add_repo 'http://download.suse.de/ibs/home:/jirislaby:/arch-preinstall/SLE_12_SP1/home:jirislaby:arch-preinstall.repo'
		REMOUNT_DEV=1
		SCM=1
	;;
	12-SP2)
		add_repo 'http://dist.suse.de/ibs/SUSE:/Tools/SLE_12/SUSE:Tools.repo'
		add_repo 'http://download.opensuse.org/repositories/devel:/tools:/scm/SLE_12_SP2/devel:tools:scm.repo'
		add_repo 'http://dist.suse.de/ibs/SUSE:/CA/SLE_12_SP2/SUSE:CA.repo'
		add_repo 'http://download.suse.de/ibs/home:/jirislaby:/arch-preinstall/SLE_12_SP2/home:jirislaby:arch-preinstall.repo'
		add_repo 'http://dist.suse.de/install/SLP/SLE-12-SP2-SDK-LATEST/x86_64/DVD1/' sp2-sdk
		REMOUNT_DEV=1
		SCM=1
	;;
	12-SP3)
		add_repo 'http://dist.suse.de/ibs/SUSE:/Tools/SLE_12/SUSE:Tools.repo'
		add_repo 'http://download.opensuse.org/repositories/devel:/tools:/scm/SLE_12_SP3/devel:tools:scm.repo'
		add_repo 'http://dist.suse.de/ibs/SUSE:/CA/SLE_12_SP3/SUSE:CA.repo'
		add_repo 'http://download.suse.de/ibs/home:/jirislaby:/arch-preinstall/SLE_12_SP3/home:jirislaby:arch-preinstall.repo'
		add_repo 'http://dist.suse.de/install/SLP/SLE-12-SP3-SDK-LATEST/x86_64/DVD1/' sp3-sdk
		REMOUNT_DEV=1
		SCM=1
	;;
	15)
		add_repo 'https://download.opensuse.org/repositories/openSUSE:/Tools/SLE_15/openSUSE:Tools.repo'
		add_repo 'https://download.opensuse.org/repositories/devel:/tools:/scm/SLE_15/devel:tools:scm.repo'
		add_repo 'http://dist.suse.de/ibs/SUSE:/CA/SLE_15/SUSE:CA.repo'
		add_repo 'http://download.suse.de/ibs/home:/jirislaby:/arch-preinstall/SLE_15/home:jirislaby:arch-preinstall.repo'
		add_repo 'http://dist.suse.de/install/SLP/SLE-15-Module-Development-Tools-LATEST/x86_64/DVD1/' 15-sdk
		REMOUNT_DEV=1
		SCM=1
	;;
	15-SP1)
		add_repo 'https://download.opensuse.org/repositories/openSUSE:/Tools/SLE_15_SP1/openSUSE:Tools.repo'
		add_repo 'https://download.opensuse.org/repositories/devel:/tools:/scm/SLE_15/devel:tools:scm.repo'
		#add_repo 'http://dist.suse.de/ibs/SUSE:/CA/SLE_15/SUSE:CA.repo'
		add_repo 'http://download.suse.de/ibs/home:/jirislaby:/arch-preinstall/SLE_15_SP1/home:jirislaby:arch-preinstall.repo'
		REMOUNT_DEV=1
		SCM=1
	;;
	13.2\ *)
	    REMOUNT_DEV=1
	;;
esac

sudo zypper -v --gpg-auto-import-keys -n in --no-recommends \
	bc cscope $QEMU quilt mosh \
	osc build flex gcc git-core libelf-devel make \
	obs-service-download_files obs-service-download_url \
	obs-service-format_spec_file \
	obs-service-recompress obs-service-set_version \
	obs-service-source_validator obs-service-tar_scm \
	obs-service-verify_file openssl-devel \
	perl-Config-IniFiles perl-File-Which \
	perl-XML-Writer \
	perl-libwww-perl tig || :

for P in ca-certificates-suse dwarves python-packaging; do
	sudo zypper -v --gpg-auto-import-keys -n in --no-recommends \
		$P || :
done

if [ $REMOUNT_DEV -eq 1 ]; then
	sudo mount -oremount,dev,suid tmpfs /dev/shm
fi

if [ $SCM -eq 1 ]; then
	sudo zypper -v -n dup --from devel_tools_scm || :
fi
