#!/bin/bash
#
# This script will either enable, or disable, the updating
# of openshift rpms via yum
#
##############
# VARIABLES
##############
CONF_FILE="@@CONF_FILE-VARIABLE@@"
PACKAGE_LIST="@@PACKAGE_LIST-VARIABLE@@"
##############
# HELP
##############
function usage() {
{
echo "Usage: ${0} <exclude | unexclude>"
echo
echo "exclude | disable"
echo " exclude packages via an exclude= line in ${CONF_FILE}"
echo " This disables updates for ${PACKAGE_LIST} packages"
echo
echo "unexclude | enable"
echo " removes ${PACKAGE_LIST} from the exclude= line in ${CONF_FILE}"
echo " This re-enables updates for packages"
echo
} 1>&2
exit 1
}
##############
# FUNCTIONS
##############
function exclude_packages() {
# Ensure there is an exclude line
if ! grep -q exclude= "${CONF_FILE}" ; then
echo "Adding exclude= to ${CONF_FILE}"
sed -i 's|\(installonly_limit=.*\)|\1\nexclude=|' "${CONF_FILE}"
fi
# Add each package to the exclude line
for package in ${PACKAGE_LIST} ; do
# slashpackage escapes * from variable package
slashpackage=$(echo ${package} | sed 's|\*|\\\*|g')
if ! grep exclude= "${CONF_FILE}" | grep -q " ${slashpackage} " ; then
sed -i "s|exclude=|exclude= ${package} |" "${CONF_FILE}"
fi
done
}
function unexclude_packages() {
# Remove each package to the exclude line
for package in ${PACKAGE_LIST} ; do
# slashpackage escapes * from variable package
slashpackage=$(echo ${package} | sed 's|\*|\\\*|g')
if grep exclude= "${CONF_FILE}" | grep -q " ${slashpackage} " ; then
sed -i "s| ${slashpackage} ||" "${CONF_FILE}"
fi
done
}
##############
# MAIN PROGRAM
##############
case "$1" in
exclude | disable )
exclude_packages
;;
unexclude | enable )
unexclude_packages
;;
* )
echo "Unknown Option: ${1}"
echo
usage
;;
esac
exit 0