#!/bin/bash
date=$(date +%Y%m%d)

# use current date for version code/name
sed -i "/versionDev/,/\}/ s/versionCode .*/versionCode $date/" build.gradle
sed -i "/versionDev/,/\}/ s/versionName .*/versionName \"$date\"/" build.gradle

# build signed apk
./gradlew assembleVersionDevRelease >> /tmp/dev.log 2>&1

if [ $? != 0 ] ; then
	echo "Build error!"
	exit 1
fi

# sign
mkdir -p ~/apks

source ~/.gradle/devVersionSecrets
/home/nextcloud/bin/apksigner sign --ks-pass env:VERSION_DEV_STORE_PASSWORD \
               --key-pass env:VERSION_DEV_KEY_PASSWORD \
               --ks $VERSION_DEV_STORE_FILE \
               --out ~/apks/nextcloud-dev-$date.apk \
               ./build/outputs/apk/versionDev/release/versionDev-release-$date.apk

# use the current date
echo $date > ~/apks/latest

ln -s nextcloud-dev-$date.apk latest.apk
mv latest.apk ~/apks/

# remove all but the latest 5 apks
/bin/ls -t ~/apks/*.apk | awk 'NR>6' | xargs rm -f

lastBuildTime=$(date --date="$(git log -1 --format=%ai $(git tag | grep dev | tail -n1))" +%s)
changelog=$(git log --after=$lastBuildTime --pretty=oneline --abbrev-commit)

echo "$changelog" > src/versionDev/fastlane/metadata/android/en-US/changelogs/$date.txt
git add build.gradle
git add src/versionDev/fastlane/metadata/android/en-US/changelogs/$date.txt
git commit -m "daily dev $date" -m "$changelog"
git push

git tag dev-$date
git push origin dev-$date

# remove all but the latest 5 tags
git tag|grep dev | sort -r | awk 'NR>5' | xargs -n 1 git push --delete origin
git tag|grep dev | sort -r | awk 'NR>5' | xargs -n 1 git tag -d
