This repository has been archived on 2025-03-16. You can view files and clone it, but cannot push or open issues or pull requests.
Files
puppet/files/darwin/.svn/text-base/mac_inst_pkg.sh.svn-base
2013-02-02 14:35:50 +01:00

94 lines
2.0 KiB
Bash

#!/bin/bash
# $Id$
BASEURL=$1
VERSION=$2
PKGNAME=$3
CHKSUM=$4
EXTENSION=$5
REMOVE=$6
CHECKONLY=$7
# this is the naming scheme of the packages:
PKGNS="${PKGNAME}_${VERSION}.${EXTENSION}"
# ZIPFILE
ZIPFILE="${PKGNS}.zip"
# ------------------------------ Functions ----------------------------
function is_installed_with_any_version {
if [ "`ls \"/Library/Receipts/${PGKNS}\"* 2>/dev/null`" != "" ] ; then
return 1
fi
return 0
}
function is_installed_with_req_version {
## echo "Testing whether /Library/Receipts/${PKGNS} exists"
if [ -e "/Library/Receipts/${PKGNS}" ] ; then
return 1
fi
return 0
}
function remove_old {
echo "Removing old not yet implemented!"
}
# ------------------------------ Installed? ---------------------------
is_installed_with_req_version
if [ $? -eq 1 ] ; then
echo "Required Version of ${PKGNAME} (${PKGNS}) already installed --> Done."
exit 1;
fi
if [ "$CHECKONLY" != "" ] ; then
exit 0;
fi
is_installed_with_any_version
if [ $? -eq 1 ] ; then
echo "Other Version of ${PKGNAME} already installed --> Updating."
if [ "$REMOVE" == "true" ] ; then
remove_old
fi
else
echo "No Version of ${PKGNAME} already installed --> Installing."
fi
# ------------------------------ Download ----------------------------
cd /tmp
ZIPFILE=`echo $ZIPFILE | perl -npe 's/ /%20/g'`
curl "${BASEURL}/$ZIPFILE" -o "/tmp/$ZIPFILE"
# ------------------------------ Checksum ----------------------------
if [ -e "/sw/bin/md5sum" ] ; then
DLMD5=`/sw/bin/md5sum "$ZIPFILE" | cut -f1 -d' '`
else
DLMD5=`md5 "$ZIPFILE" | cut -f4 -d' '`
fi
if [ "0" != "$CHKSUM" ] ; then
if [ "$DLMD5" != "$CHKSUM" ] ; then
echo "Could not verify checksum: Mismatch!"
exit 1
fi
else
echo "WARNING: Ignoring checksum check"
fi
# ------------------------------ Install ----------------------------
# -o: force overwrite
unzip -o "$ZIPFILE"
if installer -pkg "${PKGNS}" -target / ; then
touch "/Library/Receipts/${PKGNS}"
exit 0
fi
echo "Installer failed."
exit 1