#!/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 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