From 2d93cad89d7264d2e8d0372dcc5275704c68864e Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Tue, 1 Oct 2013 20:22:54 +0200
Subject: [PATCH] gluon-core: always handle core scripts first

---
 .../files/etc/uci-defaults/zzz-gluon-upgrade  | 57 +++++++++++--------
 1 file changed, 33 insertions(+), 24 deletions(-)

diff --git a/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade b/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade
index 3b9fc07d2..6be362ed5 100755
--- a/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade
+++ b/package/gluon-core/files/etc/uci-defaults/zzz-gluon-upgrade
@@ -27,8 +27,36 @@ do_dir() {
 	fi
 }
 
+do_component() {
+	local component="$1"
+	local version="$(version_of "$component")"
+	if [ -z "$version" ]; then continue; fi
+
+	cd "$component"
+
+	local oldversion="$(oldversion_of "$component")"
+	if [ -z "$oldversion" ]; then
+		do_dir initial
+	else
+		local v
+
+		for v in *; do
+			if [ "$v" = initial -o "$v" = invariant -o "$v" = version ]; then continue; fi
+
+			# The return value of opkg compare-versions is negated
+			if ! opkg compare-versions "$v" '>>' "$oldversion"; then
+				do_dir "$v"
+			fi
+		done
+	fi
+
+	do_dir invariant
+
+	echo "$version" > "$VERSION_DIR"/"$component"
+}
+
 
-version="$(version_of gluon-core)"
+version="$(version_of core)"
 
 oldversion="$(cat "$VERSION_FILE" 2>/dev/null)"
 if [ -z "$oldversion" ]; then oldversion="$(cat "$VERSION_FILE_FREIFUNK" 2>/dev/null)"; fi
@@ -38,31 +66,12 @@ if [ -z "$oldversion" ]; then oldversion="$(cat "$VERSION_FILE_KFF" 2>/dev/null)
 (
 	cd "$UPGRADE_DIR"
 
-	for component in *; do (
-		local version="$(version_of "$component")"
-		if [ -z "$version" ]; then continue; fi
-
-		cd "$component"
-
-		local oldversion="$(oldversion_of "$component")"
-		if [ -z "$oldversion" ]; then
-			do_dir initial
-		else
-			local v
-
-			for v in *; do
-				if [ "$v" = initial -o "$v" = invariant -o "$v" = version ]; then continue; fi
+	do_compoment core
 
-				# The return value of opkg compare-versions is negated
-				if ! opkg compare-versions "$v" '>>' "$oldversion"; then
-					do_dir "$v"
-				fi
-			done
+	for component in *; do (
+		if [ "$component" != 'core' ]; then
+			do_component "$component"
 		fi
-
-		do_dir invariant
-
-		echo "$version" > "$VERSION_DIR"/"$component"
 	) done
 )
 
-- 
GitLab