80 lines
1.8 KiB
Bash
80 lines
1.8 KiB
Bash
![]() |
#!/bin/bash
|
||
|
#
|
||
|
# Script to prepare an update.zip containing F-Droid
|
||
|
|
||
|
set -e
|
||
|
|
||
|
PROG_DIR=$(dirname $(realpath $0))
|
||
|
|
||
|
TMP_DIR=$(mktemp -d -t fdroidclient.tmp.XXXXXXXX)
|
||
|
trap "rm -rf $TMP_DIR" EXIT
|
||
|
|
||
|
function error() {
|
||
|
echo "*** ERROR: " $@
|
||
|
usage
|
||
|
}
|
||
|
|
||
|
function usage() {
|
||
|
cat << EOFU
|
||
|
Usage: $0 variant
|
||
|
where:
|
||
|
- variant is one of: debug, release, or binary
|
||
|
EOFU
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
# Parse input
|
||
|
VARIANT="$1"
|
||
|
[[ -z "$VARIANT" ]] && error "Missing variant"
|
||
|
|
||
|
BINARIES="$2"
|
||
|
|
||
|
GPG="gpg --keyring $PROG_DIR/f-droid.org-signing-key.gpg --no-default-keyring --trust-model always"
|
||
|
|
||
|
GITVERSION=$(git describe --tags --always)
|
||
|
|
||
|
FDROID_APK=F-Droid.apk
|
||
|
|
||
|
# Collect files
|
||
|
mkdir -p $TMP_DIR/META-INF/com/google/android/
|
||
|
cp app/src/main/scripts/update-binary $TMP_DIR/META-INF/com/google/android/
|
||
|
|
||
|
if [ $VARIANT == "binary" ] ; then
|
||
|
curl -L https://f-droid.org/$FDROID_APK > $TMP_DIR/$FDROID_APK
|
||
|
curl -L https://f-droid.org/${FDROID_APK}.asc > $TMP_DIR/${FDROID_APK}.asc
|
||
|
$GPG --verify $TMP_DIR/${FDROID_APK}.asc
|
||
|
rm $TMP_DIR/${FDROID_APK}.asc
|
||
|
else
|
||
|
cd $PROG_DIR
|
||
|
./gradlew assemble$(echo $VARIANT | tr 'dr' 'DR')
|
||
|
OUT_DIR=$PROG_DIR/app/build/outputs/apk
|
||
|
if [ $VARIANT == "debug" ]; then
|
||
|
cp $OUT_DIR/app-${VARIANT}.apk \
|
||
|
$TMP_DIR/$FDROID_APK
|
||
|
elif [ -f $OUT_DIR/app-${VARIANT}-signed.apk ]; then
|
||
|
cp $OUT_DIR/app-${VARIANT}-signed.apk \
|
||
|
$TMP_DIR/$FDROID_APK
|
||
|
else
|
||
|
cp $OUT_DIR/app-${VARIANT}-unsigned.apk \
|
||
|
$TMP_DIR/$FDROID_APK
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# Make zip
|
||
|
if [ $VARIANT == "binary" ] ; then
|
||
|
ZIPBASE=F-DroidFromBinaries-${GITVERSION}
|
||
|
else
|
||
|
ZIPBASE=F-Droid-${GITVERSION}
|
||
|
fi
|
||
|
if [ $VARIANT == "debug" ]; then
|
||
|
ZIP=${ZIPBASE}-debug.zip
|
||
|
else
|
||
|
ZIP=${ZIPBASE}.zip
|
||
|
fi
|
||
|
OUT_DIR=$PROG_DIR/app/build/distributions
|
||
|
mkdir -p $OUT_DIR
|
||
|
[ -f $OUT_DIR/$ZIP ] && rm -f $OUT_DIR/$ZIP
|
||
|
pushd $TMP_DIR
|
||
|
zip -r $OUT_DIR/$ZIP .
|
||
|
popd
|