diff --git a/packaging/osx.sh b/packaging/osx.sh index 73f9d123b82f6e4f1f282b7df187e48e27f84dd9..16817245e7d4ee7d2420fc8dfa9581fb9971abb7 100644 --- a/packaging/osx.sh +++ b/packaging/osx.sh @@ -52,7 +52,7 @@ then PKG_SIGN_POSSIBLE=0 fi -PACK() +PACK_LINUX() { DIST_DIR=$1 BUILD_DIR=$2 @@ -164,3 +164,84 @@ PACK() } + +PACK_OSX() +{ + DIST_DIR=$1 + BUILD_DIR=$2 + OUT_DIR=$3 + + BRAND=CellframeNode + + #USED FOR PREPARATION OF UNIFIED BUNDLE + #all binaries and some structure files are threre + PACKAGE_DIR=${DIST_DIR}/osxpackaging + + #USED FOR PROCESSING OF PREPARED BUNDLE: BOM CREATION, ETC + OSX_PKG_DIR=${DIST_DIR}/pkg + + BRAND_OSX_BUNDLE_DIR=${DIST_DIR}/Applications/CellframeNode.app + + #prepare correct packaging structure + mkdir -p ${PACKAGE_DIR} + mkdir -p ${OSX_PKG_DIR} + + echo "Creating unified package structure in [$BRAND_OSX_BUNDLE_DIR]" + + #copy base application bundle + #path to it in BRAND_OSX_BUNDLE_DIR + #cp -r ${DIST_DIR}/Applications/CellframeNode.app ${PACKAGE_DIR}/CellframeNode.app + + #copy pkginstall + cp ${HERE}/../../os/macos/PKGINSTALL/* ${PACKAGE_DIR} + + echo "Do packaging magic in [$PACKAGE_DIR]" + + + #get version info + source "${HERE}/../../version.mk" + PACKAGE_NAME="cellframe-node-${VERSION_MAJOR}.${VERSION_MINOR}-${VERSION_PATCH}-amd64.pkg" + PACKAGE_NAME_SIGNED="cellframe-node-${VERSION_MAJOR}.${VERSION_MINOR}-${VERSION_PATCH}-amd64-signed.pkg" + echo "Building package [$PACKAGE_NAME]" + + #prepare + PAYLOAD_BUILD=${PACKAGE_DIR}/payload_build + SCRIPTS_BUILD=${PACKAGE_DIR}/scripts_build + + mkdir -p ${PAYLOAD_BUILD} + mkdir -p ${SCRIPTS_BUILD} + + cp -r ${BRAND_OSX_BUNDLE_DIR} ${PAYLOAD_BUILD} + + cp ${PACKAGE_DIR}/preinstall ${SCRIPTS_BUILD} + cp ${PACKAGE_DIR}/postinstall ${SCRIPTS_BUILD} + + + pkgbuild --root ${PAYLOAD_BUILD} \ + --component-plist ${PAYLOAD_BUILD}/../CellframeNode.plist \ + --identifier "com.demlabs.CellframeNode" \ + --version "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" \ + --install-location "/Applications" \ + --scripts ${SCRIPTS_BUILD} \ + ./${PACKAGE_NAME} +} + +NAME_OUT="$(uname -s)" +case "${NAME_OUT}" in + Linux*) MACHINE=Linux;; + Darwin*) MACHINE=Mac;; + CYGWIN*) MACHINE=Cygwin;; + MINGW*) MACHINE=MinGw;; + MSYS_NT*) MACHINE=Git;; + *) MACHINE="UNKNOWN:${NAME_OUT}" +esac + +PACK() +{ + if [ "$MACHINE" != "Mac" ] + then + PACK_LINUX $@ + else + PACK_OSX $@ + fi +}