12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- #!/bin/bash
- APP=piratebox
- OWNER=labriqueinternet
- SERVICE="ynh-${APP}"
- REPO="${APP}_ynh"
- ARGS='domain path opt_domain opt_name opt_deleting opt_renaming opt_chat'
- install_time=$(sudo yunohost app setting "${APP}" install_time)
- install_isotime=$(date -Iseconds --date="@${install_time}")
- commits=$(sudo curl -s "https://api.github.com/repos/${OWNER}/${REPO}/commits?since=${install_isotime}" | wc -l)
- commits_upstream=$(sudo curl -s "https://api.github.com/repos/jvaubourg/php-piratebox/commits?since=${install_isotime}" | wc -l)
- if [ "${commits}" -le 3 -a "${commits_upstream}" -le 3 ]; then
- echo "${APP}: Up-to-date"
- exit 0
- fi
- for i in ${ARGS}; do
- value=$(sudo yunohost app setting "${APP}" "${i}")
- value=$(php -r "echo rawurlencode('$value');")
- args_url="${args_url}&${i}=${value}"
- done
- tmpdir=$(mktemp -dp /tmp/ "${APP}-upgrade-XXXXX")
- tmpdir_uploads=$(mktemp -dp /var/www/ "${APP}-upgrade-XXXXX")
- sudo systemctl stop "${SERVICE}"
- sudo cp -a "/etc/yunohost/apps/${APP}/settings.yml" "${tmpdir}/"
- sudo mv /var/www/piratebox/public/uploads/ "${tmpdir_uploads}/"
- sudo yunohost app remove "${APP}"
- sudo yunohost app install "https://github.com/${OWNER}/${REPO}" --args "${args_url}"
- sudo systemctl stop "${SERVICE}"
- install_time=$(sudo yunohost app setting "${APP}" install_time)
- sudo cp -a "${tmpdir}/settings.yml" "/etc/yunohost/apps/${APP}/"
- sudo mv "${tmpdir_uploads}/uploads/"* /var/www/piratebox/public/uploads/ 2> /dev/null
- sudo yunohost app setting "${APP}" install_time -v "${install_time}"
- sudo systemctl start "${SERVICE}"
- sudo rm -r "${tmpdir}/" "${tmpdir_uploads}/"
- exit 0
|