update.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/env bash
  2. set -e
  3. # determine inital and target versions
  4. initial_version="`./bw-dev runweb python manage.py instance_version --current`"
  5. target_version="`./bw-dev runweb python manage.py instance_version --target`"
  6. initial_version="`echo $initial_version | tail -n 1 | xargs`"
  7. target_version="`echo $target_version | tail -n 1 | xargs`"
  8. if [[ "$initial_version" = "$target_version" ]]; then
  9. echo "Already up to date; version $initial_version"
  10. exit
  11. fi
  12. echo "---------------------------------------"
  13. echo "Updating from version: $initial_version"
  14. echo ".......... to version: $target_version"
  15. echo "---------------------------------------"
  16. function version_gt() { test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"; }
  17. # execute scripts between initial and target
  18. for version in `ls -A updates/ | sort -V `; do
  19. if version_gt $initial_version $version; then
  20. # too early
  21. continue
  22. fi
  23. if version_gt $version $target_version; then
  24. # too late
  25. continue
  26. fi
  27. echo "Running tasks for version $version"
  28. ./updates/$version
  29. done
  30. ./bw-dev runweb python manage.py instance_version --update
  31. echo "✨ ----------- Done! --------------- ✨"