upgrade 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/bin/bash
  2. APP=piratebox
  3. OWNER=labriqueinternet
  4. SERVICE="ynh-${APP}"
  5. REPO="${APP}_ynh"
  6. ARGS='domain path opt_domain opt_name opt_deleting opt_renaming opt_chat'
  7. install_time=$(sudo yunohost app setting "${APP}" install_time)
  8. install_isotime=$(date -Iseconds --date="@${install_time}")
  9. commits=$(sudo curl -s "https://api.github.com/repos/${OWNER}/${REPO}/commits?since=${install_isotime}" | wc -l)
  10. commits_upstream=$(sudo curl -s "https://api.github.com/repos/jvaubourg/php-piratebox/commits?since=${install_isotime}" | wc -l)
  11. if [ "${commits}" -le 3 -a "${commits_upstream}" -le 3 ]; then
  12. echo "${APP}: Up-to-date"
  13. exit 0
  14. fi
  15. for i in ${ARGS}; do
  16. value=$(sudo yunohost app setting "${APP}" "${i}")
  17. value=$(php -r "echo rawurlencode('$value');")
  18. args_url="${args_url}&${i}=${value}"
  19. done
  20. tmpdir=$(mktemp -dp /tmp/ "${APP}-upgrade-XXXXX")
  21. tmpdir_uploads=$(mktemp -dp /var/www/ "${APP}-upgrade-XXXXX")
  22. sudo systemctl stop "${SERVICE}"
  23. sudo cp -a "/etc/yunohost/apps/${APP}/settings.yml" "${tmpdir}/"
  24. sudo mv /var/www/piratebox/public/uploads/ "${tmpdir_uploads}/"
  25. sudo yunohost app remove "${APP}"
  26. sudo yunohost app install "https://github.com/${OWNER}/${REPO}" --args "${args_url}"
  27. sudo systemctl stop "${SERVICE}"
  28. install_time=$(sudo yunohost app setting "${APP}" install_time)
  29. sudo cp -a "${tmpdir}/settings.yml" "/etc/yunohost/apps/${APP}/"
  30. sudo mv "${tmpdir_uploads}/uploads/"* /var/www/piratebox/public/uploads/ 2> /dev/null
  31. sudo yunohost app setting "${APP}" install_time -v "${install_time}"
  32. sudo systemctl start "${SERVICE}"
  33. sudo rm -r "${tmpdir}/" "${tmpdir_uploads}/"
  34. exit 0