#!/bin/bash

RUN_PRE=
RUN_POST=

RUN_PURE=
while [ -n "$1" ] ; do
	case $1 in
	--run-pure )
		shift
		RUN_PURE=1
		;;
	* )
		echo "$0: Unknown option: $1"
		exit -1
		;;
	esac
	shift
done

if [ -z "$RUN_PURE" ] ; then
	RUN_PRE="oracle-nofcontext-selinux oracle-instantclient-selinux oracle-instantclient-sqlplus-selinux"
	RUN_POST="oracle-rhnsat-selinux oracle-xe-selinux jabberd-selinux osa-dispatcher-selinux"
fi

for prescript in $RUN_PRE ; do
	j="/usr/sbin/$prescript-enable"
	if [ -f "$j" ] ; then
		echo "Running $j"
		$j
	fi
done

if [ -z "$RUN_PURE" ] ; then
	echo "Running $0"
fi

# Install SELinux policy modules
for selinuxvariant in mls strict targeted
	do
	/usr/sbin/semanage module -l -S ${selinuxvariant} > /dev/null 2>&1 \
		&& /usr/sbin/semodule -s ${selinuxvariant} -i /usr/share/selinux/${selinuxvariant}/spacewalk.pp || :
  done

/sbin/restorecon -rvvi /usr/share/rhn/satidmap.pl /usr/sbin/rhn-sat-restart-silent /var/log/rhn /var/cache/rhn \
	    /usr/bin/rhn-sudo-ssl-tool /srv/www/htdocs/pub /usr/sbin/tanukiwrapper \
        /var/lib/rhn/kickstarts

for sebool in \
    httpd_enable_cgi \
    httpd_can_network_connect \
    httpd_can_sendmail \
    tomcat_read_rpm_db \
    tomcat_can_network_connect_db \
    nis_enabled \
    domain_can_mmap_files \
    domain_kernel_load_modules
do
    if semanage boolean --list -n 2>/dev/null | grep -q "^\<$sebool\>"
    then
        semanage boolean --modify --on $sebool
    fi
done

if [ -z "$RUN_PURE" ] ; then
	for dir in mount_point kickstart_mount_point; do
                /usr/bin/spacewalk-cfg-get $dir
        done | xargs /usr/bin/spacewalk-make-mount-points
fi

for postscript in $RUN_POST ; do
	j="/usr/sbin/$postscript-enable"
	if [ -f "$j" ] ; then
		echo "Running $j"
		$j
	fi
done

