diff --git a/composite/distribution.sh b/composite/distribution.sh index 1960246..25291d1 100644 --- a/composite/distribution.sh +++ b/composite/distribution.sh @@ -29,21 +29,6 @@ load_make_vars PRODUCT_ARCH PRODUCT_CORE SETSDIR -PACKAGESET=$(find ${SETSDIR} -name "packages-*-${PRODUCT_ARCH}.tar") +CORE_VERSION=$(load_core_version ${SETSDIR} ${PRODUCT_ARCH} ${PRODUCT_CORE}) -if [ ! -f "${PACKAGESET}" ]; then - echo ">>> Cannot continue without packages set" - exit 1 -fi - -COREFILE=$(tar -tf ${PACKAGESET} | grep -x "\./All/${PRODUCT_CORE}-[0-9].*\.pkg") - -if [ -z "${COREFILE}" ]; then - echo ">>> Cannot continue without core package: ${PRODUCT_CORE}" - exit 1 -fi - -COREFILE=$(basename ${COREFILE%.pkg}) -COREFILE=$(basename ${COREFILE%_*}) - -make clean-obj,release,images release VERSION=${COREFILE##*-} +make clean-obj,release,images release VERSION=${CORE_VERSION} diff --git a/composite/util.sh b/composite/util.sh index ab3a813..97f786d 100644 --- a/composite/util.sh +++ b/composite/util.sh @@ -25,12 +25,32 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. +load_core_version() +{ + PACKAGESET=$(find ${1} -name "packages-*-${2}.tar") + if [ ! -f "${PACKAGESET}" ]; then + echo ">>> Cannot continue without packages set" >&2 + exit 1 + fi + + COREFILE=$(tar -tf ${PACKAGESET} | grep -x "\./All/${3}-[0-9].*\.pkg") + if [ -z "${COREFILE}" ]; then + echo ">>> Cannot continue without core package: ${3}" >&2 + exit 1 + fi + + COREFILE=$(basename ${COREFILE%.pkg}) + COREFILE=${COREFILE%_*} + + echo ${COREFILE##*-} +} + load_make_vars() { for VAR in ${*}; do RESULT=$(make print-${VAR} 2> /dev/null) if [ -z "${RESULT}" ]; then - echo "Variable '${VAR}' could not be loaded" >&2 + echo ">>> Variable '${VAR}' could not be loaded" >&2 exit 1 fi eval "${RESULT}"