zzz-gluon-upgrade 1018 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/sh
  2. UPGRADE_DIR=/lib/gluon/upgrade
  3. VERSION_DIR=/lib/gluon/version
  4. if [ -x /lib/gluon/legacy/legacy-upgrade ] && /lib/gluon/legacy/legacy-upgrade; then
  5. HAS_LEGACY=1
  6. else
  7. HAS_LEGACY=
  8. fi
  9. mkdir -p "$VERSION_DIR"
  10. version_of() {
  11. opkg status "gluon-$1" | awk '/^Version: / { print $2 }'
  12. }
  13. oldversion_of() {
  14. cat "$VERSION_DIR"/"$1" 2>/dev/null
  15. }
  16. do_dir() {
  17. [ -d "$1" ] || return
  18. local s
  19. for s in "$1"/*; do "$s"; done
  20. }
  21. do_component() {
  22. local component="$1"
  23. local version="$(version_of "$component")"
  24. [ "$version" ] || continue
  25. (
  26. cd "$component"
  27. local oldversion="$(oldversion_of "$component")"
  28. if [ -z "$oldversion" ]; then
  29. if [ "$HAS_LEGACY" ]; then
  30. do_dir legacy
  31. else
  32. do_dir initial
  33. fi
  34. fi
  35. do_dir invariant
  36. echo "$version" > "$VERSION_DIR"/"$component"
  37. )
  38. }
  39. cd "$UPGRADE_DIR"
  40. do_component core
  41. for component in *; do
  42. [ "$component" != 'core' ] || continue
  43. do_component "$component"
  44. done
  45. if [ "$HAS_LEGACY" ]; then
  46. /lib/gluon/legacy/legacy-upgrade-late
  47. fi