2016-10-31 14:54:48 +01:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
set -eu -o pipefail
|
|
|
|
|
|
|
|
|
|
if [[ ${EUID} -ne 0 ]]; then
|
|
|
|
|
echo "This script should be run as root." > /dev/stderr
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
readonly INSTALLER_SOURCE_DIR="/home/yellowtent/installer"
|
2016-11-01 18:13:45 +01:00
|
|
|
readonly UPDATER_SERVICE="cloudron-updater"
|
|
|
|
|
readonly DATA_FILE="/tmp/cloudron-update-data.json"
|
2016-10-31 14:54:48 +01:00
|
|
|
|
|
|
|
|
if [[ $# == 1 && "$1" == "--check" ]]; then
|
|
|
|
|
echo "OK"
|
|
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
if [[ $# != 2 ]]; then
|
|
|
|
|
echo "sourceTarballUrl and data arguments required"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
readonly sourceTarballUrl="${1}"
|
|
|
|
|
readonly data="${2}"
|
|
|
|
|
|
2016-11-01 18:13:45 +01:00
|
|
|
echo "Updating Cloudron with ${sourceTarballUrl}"
|
|
|
|
|
echo "${data}"
|
2016-10-31 14:54:48 +01:00
|
|
|
|
2016-11-01 18:13:45 +01:00
|
|
|
# Save user data in file, to avoid argument length limit with systemd-run
|
|
|
|
|
echo "${data}" > "${DATA_FILE}"
|
|
|
|
|
|
|
|
|
|
echo "=> Run installer.sh as cloudron-updater.service"
|
|
|
|
|
if ! systemd-run --unit "${UPDATER_SERVICE}" ${INSTALLER_SOURCE_DIR}/scripts/installer.sh --sourcetarballurl "${sourceTarballUrl}" --data-file "${DATA_FILE}"; then
|
2016-10-31 14:54:48 +01:00
|
|
|
echo "Failed to install cloudron. See ${LOG_FILE} for details"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2016-11-01 18:13:45 +01:00
|
|
|
|
|
|
|
|
echo "=> service ${UPDATER_SERVICE} started."
|
|
|
|
|
echo "=> See logs with journalctl -u ${UPDATER_SERVICE} -f"
|