kivy/.ci/osx_ci.sh

82 lines
2.1 KiB
Bash

#!/bin/bash
set -e -x
# macOS Platypus version
MACOS__PLATYPUS__VERSION=5.4.1
download_cache_curl() {
fname="$1"
key="$2"
url="$3"
if [ ! -f $key/$fname ]; then
if [ ! -d $key ]; then
mkdir "$key"
fi
curl -L "$url" -o "$fname"
cp "$fname" "$key"
else
cp "$key/$fname" .
fi
}
install_platypus() {
download_cache_curl "platypus$MACOS__PLATYPUS__VERSION.zip" "osx-cache" "https://github.com/sveinbjornt/Platypus/releases/download/v$MACOS__PLATYPUS__VERSION/platypus$MACOS__PLATYPUS__VERSION.zip"
unzip "platypus$MACOS__PLATYPUS__VERSION.zip"
gunzip Platypus.app/Contents/Resources/platypus_clt.gz
gunzip Platypus.app/Contents/Resources/ScriptExec.gz
mkdir -p /usr/local/bin
mkdir -p /usr/local/share/platypus
cp Platypus.app/Contents/Resources/platypus_clt /usr/local/bin/platypus
cp Platypus.app/Contents/Resources/ScriptExec /usr/local/share/platypus/ScriptExec
cp -a Platypus.app/Contents/Resources/MainMenu.nib /usr/local/share/platypus/MainMenu.nib
chmod -R 755 /usr/local/share/platypus
}
generate_osx_app_bundle() {
py_version="$1"
app_ver=$(PYTHONPATH=. KIVY_NO_CONSOLELOG=1 python3 -c 'import kivy; print(kivy.__version__)')
cd ../
git clone https://github.com/kivy/kivy-sdk-packager.git
cd kivy-sdk-packager/osx
./create-osx-bundle.sh -k ../../kivy -p "$py_version" -v "$app_ver"
}
generate_osx_app_dmg_from_bundle() {
pushd ../kivy-sdk-packager/osx
./create-osx-dmg.sh build/Kivy.app Kivy
popd
mkdir app
mv ../kivy-sdk-packager/osx/Kivy.dmg "app/Kivy.dmg"
}
rename_osx_app() {
py_version=${1:0:3}
app_date=$(python3 -c "from datetime import datetime; print(datetime.utcnow().strftime('%Y%m%d'))")
git_tag=$(git rev-parse --short HEAD)
app_ver=$(PYTHONPATH=. KIVY_NO_CONSOLELOG=1 python3 -c 'import kivy; print(kivy.__version__)')
cp app/Kivy.dmg "app/Kivy-$app_ver-$git_tag-$app_date-python$py_version.dmg"
}
mount_osx_app() {
pushd app
hdiutil attach Kivy.dmg -mountroot .
cp -R Kivy/Kivy.app Kivy.app
popd
}
activate_osx_app_venv() {
pushd app/Kivy.app/Contents/Resources/venv/bin
source activate
source kivy_activate
popd
}