1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/sh
- UPGRADE_DIR=/lib/gluon/upgrade
- VERSION_DIR=/lib/gluon/version
- if [ -x /lib/gluon/legacy/legacy-upgrade ] && /lib/gluon/legacy/legacy-upgrade; then
- HAS_LEGACY=1
- else
- HAS_LEGACY=
- fi
- # Temporary fix for broken upgrades (happened between 20140225 and 20140226, remove next week)
- if [ -f "$VERSION_DIR" ]; then rm "$VERSION_DIR"; fi
- mkdir -p "$VERSION_DIR"
- version_of() {
- opkg status "gluon-$1" | awk '/^Version: / { print $2 }'
- }
- oldversion_of() {
- cat "$VERSION_DIR"/"$1" 2>/dev/null
- }
- do_dir() {
- [ -d "$1" ] || return
- local s
- for s in "$1"/*; do "$s"; done
- }
- do_component() {
- local component="$1"
- local version="$(version_of "$component")"
- [ "$version" ] || continue
- (
- cd "$component"
- local oldversion="$(oldversion_of "$component")"
- if [ -z "$oldversion" ]; then
- if [ "$HAS_LEGACY" ]; then
- do_dir legacy
- else
- do_dir initial
- fi
- fi
- do_dir invariant
- echo "$version" > "$VERSION_DIR"/"$component"
- )
- }
- cd "$UPGRADE_DIR"
- do_component core
- for component in *; do
- [ "$component" != 'core' ] || continue
- do_component "$component"
- done
- if [ "$HAS_LEGACY" ]; then
- /lib/gluon/legacy/legacy-upgrade-late
- fi
|