123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198 |
- #!/bin/sh
- set -e
- info()
- {
- local green="\033[1;32m"
- local normal="\033[0m"
- echo "[${green}Package${normal}] $1"
- }
- spushd()
- {
- pushd "$1" > /dev/null
- }
- spopd()
- {
- popd > /dev/null
- }
- MOBILE=no
- TV=no
- VERBOSE=no
- USEZIP=no
- USECOMPRESSEDARCHIVE=yes
- USEDMG=no
- usage()
- {
- cat << EOF
- usage: $0 [options]
- Package VLCKit
- By default, VLCKit will be packaged as a tar.xz archive.
- You can use the options below to package a different flavor of VLCKit
- or/and to store the binaries in a zip or a dmg file instead.
- OPTIONS:
- -h Show some help
- -v Be verbose
- -m Package MobileVLCKit
- -t Package TVVLCKit
- -z Use zip file format
- -d Use dmg file format
- EOF
- }
- while getopts "hvmtz" OPTION
- do
- case $OPTION in
- h)
- usage
- exit 1
- ;;
- v)
- VERBOSE=yes
- ;;
- m)
- MOBILE=yes
- ;;
- t)
- MOBILE=yes
- TV=yes
- ;;
- z)
- USEZIP=yes
- ;;
- z)
- USEDMG=yes
- USECOMPRESSEDARCHIVE=no
- ;;
- esac
- done
- shift $(($OPTIND - 1))
- out="/dev/null"
- if [ "$VERBOSE" = "yes" ]; then
- out="/dev/stdout"
- fi
- if [ "x$1" != "x" ]; then
- usage
- exit 1
- fi
- root=`dirname $0`/../
- DMGFOLDERNAME="VLCKit - binary package"
- DMGITEMNAME="VLCKit-REPLACEWITHVERSION"
- if [ "$USECOMPRESSEDARCHIVE" != "yes" ]; then
- DMGFOLDERNAME="VLCKit-binary"
- fi
- if [ "$MOBILE" = "yes" ]; then
- if [ "$USECOMPRESSEDARCHIVE" = "yes" ]; then
- DMGFOLDERNAME="MobileVLCKit-binary"
- else
- DMGFOLDERNAME="MobileVLCKit - binary package"
- fi
- DMGITEMNAME="MobileVLCKit-REPLACEWITHVERSION"
- fi
- if [ "$TV" = "yes" ]; then
- if [ "$USECOMPRESSEDARCHIVE" = "yes" ]; then
- DMGFOLDERNAME="TVVLCKit-binary"
- else
- DMGFOLDERNAME="TVVLCKit - binary package"
- fi
- DMGITEMNAME="TVVLCKit-REPLACEWITHVERSION"
- fi
- info "checking for distributable binary package"
- spushd ${root}
- if [ "$MOBILE" = "no" ]; then
- if [ ! -e "build/Release/VLCKit.framework" ]; then
- info "VLCKit not found for distribution, creating... this will take long"
- ./compileAndBuildVLCKit.sh -x
- fi
- else
- if [ "$TV" = "yes" ]; then
- if [ ! -e "build/TVVLCKit.framework" ]; then
- info "TVVLCKit not found for distribution, creating... this will take long"
- ./compileAndBuildVLCKit.sh -f -t
- fi
- else
- if [ ! -e "build/MobileVLCKit.framework" ]; then
- info "MobileVLCKit not found for distribution, creating... this will take long"
- ./compileAndBuildVLCKit.sh -f
- fi
- fi
- fi
- info "Deleting previous data"
- rm -rf "${DMGFOLDERNAME}"
- info "Collecting items"
- mkdir -p "${DMGFOLDERNAME}"
- mkdir -p "${DMGFOLDERNAME}/Sample Code"
- if [ "$MOBILE" = "no" ]; then
- cp -R build/Release/VLCKit.framework "${DMGFOLDERNAME}"
- cp -R Examples/macOS/* "${DMGFOLDERNAME}/Sample Code"
- cp -R doc "${DMGFOLDERNAME}"
- cp COPYING "${DMGFOLDERNAME}"
- else
- if [ "$TV" = "yes" ]; then
- cp -R build/TVVLCKit.framework "${DMGFOLDERNAME}"
- else
- cp -R build/MobileVLCKit.framework "${DMGFOLDERNAME}"
- cp -R Examples/iOS/* "${DMGFOLDERNAME}/Sample Code"
- fi
- cp -R doc "${DMGFOLDERNAME}"
- cp COPYING "${DMGFOLDERNAME}"
- fi
- cp NEWS "${DMGFOLDERNAME}"
- spushd "${DMGFOLDERNAME}"
- mv NEWS NEWS.txt
- mv COPYING COPYING.txt
- spopd
- if [ "$USEDMG" = "yes" ]; then
- info "Creating disk-image"
- rm -f ${DMGITEMNAME}-rw.dmg
- hdiutil create -srcfolder "${DMGFOLDERNAME}" "${DMGITEMNAME}-rw.dmg" -scrub -format UDRW
- mkdir -p ./mount
- info "Moving file icons around"
- hdiutil attach -readwrite -noverify -noautoopen -mountRoot ./mount ${DMGITEMNAME}-rw.dmg
- if [ "$MOBILE" = "no" ]; then
- osascript Packaging/dmg_setup.scpt "${DMGFOLDERNAME}"
- else
- if [ "$TV" = "no" ]; then
- osascript Packaging/mobile_dmg_setup.scpt "${DMGFOLDERNAME}"
- fi
- fi
- hdiutil detach ./mount/"${DMGFOLDERNAME}"
- info "Compressing disk-image"
- rm -f ${DMGITEMNAME}.dmg
- hdiutil convert "${DMGITEMNAME}-rw.dmg" -format UDBZ -o "${DMGITEMNAME}.dmg"
- rm -f ${DMGITEMNAME}-rw.dmg
- rm -rf "${DMGFOLDERNAME}"
- else
- if [ "$USEZIP" = "yes" ]; then
- info "Creating zip-archive"
- zip -y -r ${DMGITEMNAME}.zip "${DMGFOLDERNAME}"
- else
- info "Creating xz-archive"
- tar -cJf ${DMGITEMNAME}.tar.xz "${DMGFOLDERNAME}"
- fi
- fi
- spopd
- info "Distributable package created"
|