gluon/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade

69 lines
1019 B
Plaintext
Raw Normal View History

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