Move all upgrade scripts to a common directory

Moving the scripts to a common directory not only vastly simplifies the
zzz-gluon-upgrade script, but also allows to define an ordering of such
scripts across packages.
This commit is contained in:
Matthias Schiffer 2015-01-24 11:27:47 +01:00
parent 20187005d4
commit 9b172bbaf4
39 changed files with 2 additions and 66 deletions

View File

@ -1,67 +1,5 @@
#!/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"
for script in /lib/gluon/upgrade/*; do
"$script"
done
if [ "$HAS_LEGACY" ]; then
/lib/gluon/legacy/legacy-upgrade-late
fi

View File

@ -1,3 +1 @@
/lib/gluon/version/
/lib/gluon/core/sysconfig/