From e993f2223337ba7e46708e17d07fb85107693a37 Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Fri, 24 Apr 2020 23:09:05 +0200
Subject: [PATCH] scripts/target_lib.lua: reorganize images into per-device
 lists

---
 scripts/copy_output.lua       | 22 ++++++++++++----------
 scripts/generate_manifest.lua |  8 +++++---
 scripts/target_lib.lua        |  4 +++-
 3 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/scripts/copy_output.lua b/scripts/copy_output.lua
index e0d4c5642..7b52f4f2d 100755
--- a/scripts/copy_output.lua
+++ b/scripts/copy_output.lua
@@ -36,20 +36,22 @@ local function clean(image, name)
 	lib.exec {'rm', '-f', dir..'/'..file}
 end
 
-for _, image in ipairs(lib.images) do
-	clean(image, image.image)
+for _, images in pairs(lib.images) do
+	for _, image in ipairs(images) do
+		clean(image, image.image)
 
-	local destdir, destname = image:dest_name(image.image)
-	local source = string.format('openwrt/bin/targets/%s/openwrt-%s-%s%s%s',
-		bindir, openwrt_target, image.name, image.in_suffix, image.extension)
+		local destdir, destname = image:dest_name(image.image)
+		local source = string.format('openwrt/bin/targets/%s/openwrt-%s-%s%s%s',
+			bindir, openwrt_target, image.name, image.in_suffix, image.extension)
 
-	lib.exec {'cp', source, destdir..'/'..destname}
+		lib.exec {'cp', source, destdir..'/'..destname}
 
-	for _, alias in ipairs(image.aliases) do
-		clean(image, alias)
+		for _, alias in ipairs(image.aliases) do
+			clean(image, alias)
 
-		local _, aliasname = image:dest_name(alias)
-		lib.exec {'ln', '-s', destname, destdir..'/'..aliasname}
+			local _, aliasname = image:dest_name(alias)
+			lib.exec {'ln', '-s', destname, destdir..'/'..aliasname}
+		end
 	end
 end
 
diff --git a/scripts/generate_manifest.lua b/scripts/generate_manifest.lua
index 73125044b..e289412e1 100755
--- a/scripts/generate_manifest.lua
+++ b/scripts/generate_manifest.lua
@@ -48,8 +48,10 @@ local function generate(image)
 	end
 end
 
-for _, image in ipairs(lib.images) do
-	if image.subdir == 'sysupgrade' then
-		generate(image)
+for _, images in pairs(lib.images) do
+	for _, image in ipairs(images) do
+		if image.subdir == 'sysupgrade' then
+			generate(image)
+		end
 	end
 end
diff --git a/scripts/target_lib.lua b/scripts/target_lib.lua
index b923777f4..90ca90822 100644
--- a/scripts/target_lib.lua
+++ b/scripts/target_lib.lua
@@ -143,7 +143,9 @@ local image_mt = {
 }
 
 local function add_image(image)
-	table.insert(M.images, setmetatable(image, image_mt))
+	local device = image.image
+	M.images[device] = M.images[device] or {}
+	table.insert(M.images[device], setmetatable(image, image_mt))
 end
 
 function F.try_config(...)
-- 
GitLab