#!/bin/sh # # %Z% %I% %W% %G% %U% # # ZZ_Copyright_BEGIN # # # Licensed Materials - Property of IBM # # IBM Linear Tape File System Single Drive Edition Version 2.2.0.2 for Linux and Mac OS X # # Copyright IBM Corp. 2010, 2014 # # This file is part of the IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X # (formally known as IBM Linear Tape File System) # # The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is free software; # you can redistribute it and/or modify it under the terms of the GNU Lesser # General Public License as published by the Free Software Foundation, # version 2.1 of the License. # # The IBM Linear Tape File System Single Drive Edition for Linux and Mac OS X is distributed in the # hope that it will be useful, but WITHOUT ANY WARRANTY; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # See the GNU Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # or download the license from . # # # ZZ_Copyright_END # ############################################################################# # # FILE NAME: assemble-framework.sh # # DESCRIPTION: Automates assembly of OS X framework # skeleton for LTFS. # # AUTHOR: Michael A. Richmond # IBM Almaden Research Center # mar@almaden.ibm.com # ############################################################################# BASEDIR=`pwd` DIRNAME=`dirname $0` PROJECT_NAME=LTFS PROJECT_VERSION=3.4.2 FRAMEWORK_NAME=${PROJECT_NAME}.framework OUTPUT_DIR=distribution BUNDLE_IDENTIFIER=com.hpe.ltfs BUNDLE_REGION=English BUNDLE_EXECUTABLE=ltfs ########################################################################## ########################################################################## # Create folders for framework in current directory create_framework_structure() { umask 00 mkdir Versions mkdir Versions/${PROJECT_VERSION} ln -s ${PROJECT_VERSION} Versions/Current mkdir Versions/${PROJECT_VERSION}/Headers ln -s Versions/Current/Headers Headers mkdir Versions/Current/Resources ln -s Versions/Current/Resources Resources # Prefix for project install... mkdir Versions/Current/usr mkdir Versions/Current/usr/lib ln -s Versions/Current/usr/lib Libraries } create_infoplist() { packageName=$1 packageVersion=$2 bundleName=$3 bundleIdentifier=$4 bundleDevelopmentRegion=$5 bundleExecutable=$6 cat > Resources/Info.plist < CFBundleDevelopmentRegion ${bundleDevelopmentRegion} CFBundleExecutable ${bundleExecutable} CFBundleGetInfoString ${packageName} ${packageVersion} CFBundleIdentifier ${bundleIdentifier} CFBundleInfoDictionaryVersion 6.0 CFBundleName ${bundleName} CFBundlePackageType FMWK CFBundleShortVersionString ${packageVersion} CFBundleSignature ???? CFBundleVersion ${packageVersion} EOF } print_usage() { echo "usage: "`basename $0`" [clean|distclean]" echo "" echo " This script assembles the skeleton for an OS X framework." echo "" echo " The 'clean' option cleans up any previously built" echo " framework." echo "" } ########################################################################## ########################################################################## if [ $# -ne 0 ]; then case ${1} in clean) cd ${BASEDIR} \rm -rf ${OUTPUT_DIR} exit 0 ;; *) print_usage cd ${BASEDIR} exit 1 ;; esac fi ## ## create working directory... ## cd ${BASEDIR} mkdir ${OUTPUT_DIR} ## ## create framework structure... ## cd ${BASEDIR}/${OUTPUT_DIR} mkdir ${FRAMEWORK_NAME} cd ${FRAMEWORK_NAME} create_framework_structure ## ## Create Info.plist... ## cd ${BASEDIR}/${OUTPUT_DIR}/${FRAMEWORK_NAME} create_infoplist "${PROJECT_NAME}" "${PROJECT_VERSION}" "${PROJECT_NAME}" "${BUNDLE_IDENTIFIER}" "${BUNDLE_REGION}" "${BUNDLE_EXECUTABLE}" ## ## Set permissions... ## cd ${BASEDIR}/${OUTPUT_DIR}/${FRAMEWORK_NAME} find . -type d |xargs chmod a+rx cd ${BASEDIR}