@@ -44,20 +44,31 @@ local function clean(image, name)
4444 lib .exec {' rm' , ' -f' , dir .. ' /' .. file }
4545end
4646
47+ local missing_images = {}
48+
4749for _ , images in pairs (lib .images ) do
4850 for _ , image in ipairs (images ) do
51+ -- Clean first
52+
4953 clean (image , image .image )
5054
55+ for _ , alias in ipairs (image .aliases ) do
56+ clean (image , alias )
57+ end
58+
5159 local destdir , destname = image :dest_name (image .image )
5260 local source = image_source (image )
5361
54- lib .exec {' cp' , source , destdir .. ' /' .. destname }
62+ if not pcall (function ()
63+ lib .exec {' cp' , source , destdir .. ' /' .. destname }
5564
56- for _ , alias in ipairs (image .aliases ) do
57- clean (image , alias )
58-
59- local _ , aliasname = image :dest_name (alias )
60- lib .exec {' ln' , ' -s' , destname , destdir .. ' /' .. aliasname }
65+ for _ , alias in ipairs (image .aliases ) do
66+ local _ , aliasname = image :dest_name (alias )
67+ lib .exec {' ln' , ' -s' , destname , destdir .. ' /' .. aliasname }
68+ end
69+ end ) then
70+ print (string.format (' Failed to copy (%s) %s, assuming it\' s missing' , image .subdir , image .image ))
71+ table.insert (missing_images , image )
6172 end
6273 end
6374
@@ -94,3 +105,10 @@ if (env.GLUON_DEVICES or '') == '' then
94105 mkdir (dest_dir (package_prefix ))
95106 lib .exec {' cp' , ' openwrt/bin/targets/' .. bindir .. ' /packages/\0 ' , dest_dir (package_prefix )}
96107end
108+
109+ if # missing_images > 0 then
110+ print (' The following images were missing:' )
111+ for _ , image in ipairs (missing_images ) do
112+ print (string.format (' - (%s) %s' , image .subdir , image .image ))
113+ end
114+ end
0 commit comments