67 lines
1.9 KiB
Bash
Executable File
67 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail -o errtrace
|
|
|
|
APP_NAME="${1:-pride_flags}"
|
|
VERSION="${2:-1.1.3-rc.1}"
|
|
REPO=`pwd`
|
|
CERT_DIR="$HOME/.nextcloud/certificates"
|
|
TARBALL="$APP_NAME-$VERSION.tar.gz"
|
|
TARBALL_SIG="$TARBALL.sig"f
|
|
CONTAINER_NAME="nextcloud-app-signing-container"
|
|
CONTAINER_IMAGE="${3:-docker.io/library/nextcloud:31.0.2}"
|
|
CONTAINER_APP_LOC="/var/www/html/custom_apps/$APP_NAME"
|
|
|
|
_SLEEP="45"
|
|
|
|
traperr() {
|
|
echo "ERROR: ${BASH_SOURCE[1]} at about ${BASH_LINENO[0]}"
|
|
mv ../nextcloud-pride-flags-git .git
|
|
sudo docker stop "${CONTAINER_NAME}"
|
|
sudo docker rm "${CONTAINER_NAME}"
|
|
}
|
|
trap traperr ERR
|
|
|
|
mkdir ../nextcloud-pride-flags-tmp
|
|
mv .git ../nextcloud-pride-flags-tmp/.git
|
|
mv bin ../nextcloud-pride-flags-tmp/bin
|
|
mv vendor-bin ../nextcloud-pride-flags-tmp/vendor-bin
|
|
|
|
sudo docker run --hostname nc31.local \
|
|
-e NEXTCLOUD_ADMIN_USER=admin \
|
|
-e NEXTCLOUD_ADMIN_PASSWORD=admin \
|
|
--name "${CONTAINER_NAME}" --detach \
|
|
-v "${CERT_DIR}/:/privkey/:ro" \
|
|
-v "${REPO}/:${CONTAINER_APP_LOC}/:rw" \
|
|
"${CONTAINER_IMAGE}"
|
|
|
|
echo "Sleep ${_SLEEP}s for container startup"
|
|
sleep "$_SLEEP"
|
|
sudo docker exec -it ${CONTAINER_NAME} php occ integrity:sign-app \
|
|
--path="${CONTAINER_APP_LOC}" \
|
|
--privateKey="/privkey/${APP_NAME}.key" \
|
|
--certificate="/privkey/${APP_NAME}.crt"
|
|
|
|
sudo docker stop "${CONTAINER_NAME}"
|
|
sudo docker rm "${CONTAINER_NAME}"
|
|
|
|
mv ../nextcloud-pride-flags-tmp/.git .git
|
|
mv ../nextcloud-pride-flags-tmp/bin bin
|
|
mv ../nextcloud-pride-flags-tmp/vendor-bin vendor-bin
|
|
|
|
echo "App $APP_NAME signed @ ${VERSION}. Commit the appinfo/signatures.json now and press enter."
|
|
read -p "Press Enter to continue" < /dev/tty
|
|
|
|
tar --exclude-vcs --exclude='./bin' --exclude='./vendor-bin' -czvf "${TARBALL}" "$REPO"
|
|
|
|
# verify content
|
|
echo "Tarball '${TARBALL}' content:"
|
|
tar -tf ${TARBALL}
|
|
|
|
echo "Tarball signature:"
|
|
# sign tarball
|
|
openssl dgst -sha512 -sign "${CERT_DIR}/${APP_NAME}.key" $TARBALL \
|
|
| openssl base64 \
|
|
| tee "${TARBALL_SIG}"
|
|
|
|
|