diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..de6927f --- /dev/null +++ b/build.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +pkgname=$1 +cur_path=$(dirname "$0") +if [ "$pkgname" ]; then + $cur_path/$pkgname/build.sh + exit $? +else + # TODO: if not specify, build all packages for xcat-dep + echo "Please specify package want to build" + exit 1 +fi diff --git a/ipmitool/build.sh b/ipmitool/build.sh new file mode 100755 index 0000000..572e74e --- /dev/null +++ b/ipmitool/build.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +function check_linux_distro() +{ + local distro="$(source /etc/os-release >/dev/null 2>&1 && echo "${ID}")" + [[ -z "${distro}" && -f /etc/redhat-release ]] && distro="rhel" + [[ -z "${distro}" && -f /etc/SuSE-release ]] && distro="sles" + echo "${distro}" +} + +pkgname="ipmitool" + +build_dir=${DEST:-/${pkgname}_build} + +XCAT_BUILD_DISTRO="$(check_linux_distro)" +echo "[INFO] Start to build $pkgname on $XCAT_BUILD_DISTRO" + +cur_path=$(dirname "$0") +cd $cur_path + +XCAT_BUILD_DISTRO="$(check_linux_distro)" +case "${XCAT_BUILD_DISTRO}" in +"centos"|"fedora"|"rhel"|"sles") + buildcmd="./bldipmi.pl" + dftpath="/tmp/build/" + pkgtype="rpm" + ;; +"ubuntu") + buildcmd="./make_deb.sh" + dftpath=$cur_path + pkgtype="deb" + ;; +*) + echo "${XCAT_BUILD_DISTRO}: unsupported Linux distribution to build goconserver" + exit 1 + ;; +esac + +$buildcmd |& tee /tmp/build.log +if [ $? != 0 ]; then + echo "[ERROR] Failed to build $pkgname by command $buildcmd" + exit 1 +fi + +buildpath=`find $dftpath -name ${pkgname}*.$pkgtype | xargs ls -t | head -n 1` +if [ -z "$buildpath" ]; then + echo "[ERROR] Could not find build ${pkgname}*.$pkgtype" + exit 1 +fi + +filepath=$(dirname $buildpath) +pathpre=${filepath:${#dftpath}} +build_dir=$build_dir/$pathpre +mkdir -p $build_dir + +cp -f $buildpath $build_dir +if [ $? != 0 ]; then + echo "[ERROR] Failed to copy $buildpath to $build_dir" + exit 1 +fi +cp -f /tmp/build.log $build_dir + +buildname=$(basename $buildpath) +echo "[INFO] Package path is $build_dir/$buildname" + +exit 0