From patchwork Thu Apr 2 13:53:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: buildscript: copy all squashfs images for one device From: Adrian Schmutzler X-Patchwork-Id: 1326 Message-Id: <20200402135350.41396-1-freifunk@adrianschmutzler.de> To: franken-dev@freifunk.net Date: Thu, 2 Apr 2020 15:53:50 +0200 So far, we are selecting specific squashfs images to be copied from openwrt bin folder to our "final" bin directory. This has the disadvantage that additional image types/names have to be added explicitly, bloating the relevant code in buildscript. With this patch, this behavior is changed in order to copy all squashfs images for a particular device. As before, this will _not_ copy initramfs images. Signed-off-by: Adrian Schmutzler --- This has been tested with my firmware, but not after porting to official. --- buildscript | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/buildscript b/buildscript index b0935a4c..bbfb2f92 100755 --- a/buildscript +++ b/buildscript @@ -292,18 +292,23 @@ cp_firmware() { mkdir -p "bin/$variant" + imagesrcpath="$builddir/bin/targets/${chipset}/${subtarget}" + imagedestpath="./bin/$variant" + for image in ${images[@]}; do - filename_build=${image//openwrt/fff-${version}} - filename_build=${filename_build//squashfs-/} - filename_build=${filename_build//${chipset}-${subtarget}-/} - cp "$builddir/bin/targets/${chipset}/${subtarget}/$image" "./bin/$variant/$filename_build" - - for region in "" "-eu" "-us"; do - image_factory=${image/sysupgrade/factory$region} - if [[ -f "$builddir/bin/targets/${chipset}/${subtarget}/$image_factory" ]]; then - filename_build_factory=${filename_build/sysupgrade/factory$region} - cp "$builddir/bin/targets/${chipset}/${subtarget}/$image_factory" "./bin/$variant/$filename_build_factory" - fi + # the following line is no mistake, since the first expression + # is evaluated, while the second is used literally + fullsrcpath=$imagesrcpath/${image//squashfs-*/squashfs-*} + if ! ls $fullsrcpath >/dev/null 2>/dev/null; then + echo "Warning: $image not found." + continue + fi + for f in $fullsrcpath; do + filename_build=${f##*/} + filename_build=${filename_build//openwrt/fff-${version}} + filename_build=${filename_build//squashfs-/} + filename_build=${filename_build//${chipset}-${subtarget}-/} + cp "$f" "$imagedestpath/$filename_build" done done }