imagebuilder: add package_list function
authorPaul Spooren <paul@spooren.de>
Tue, 13 Jun 2017 19:59:14 +0000 (21:59 +0200)
committerJo-Philipp Wich <jo@mein.io>
Wed, 13 Dec 2017 14:59:35 +0000 (15:59 +0100)
The imagebuilder can now list all available packages by using make
package_list. This is usefull for scripts to retrieve a list of all
packages with versions (and size)

Signed-off-by: Paul Spooren <paul@spooren.de>
[daniel@makrotopia.org: fixed commit message]
(cherry picked from commit 19ac879954210df3c6a010990bef42ad5c7fd967)

target/imagebuilder/files/Makefile

index baa0e1f271993d1d063c55f045cf7eaf413559f7..d12cb7622f08fd76ab96f1bae845cbb2588bda9e 100644 (file)
@@ -112,13 +112,7 @@ _call_image: staging_dir/host/.prereq-build
        echo
        rm -rf $(TARGET_DIR)
        mkdir -p $(TARGET_DIR) $(BIN_DIR) $(TMP_DIR) $(DL_DIR)
-       if [ ! -f "$(PACKAGE_DIR)/Packages" ] || [ ! -f "$(PACKAGE_DIR)/Packages.gz" ] || [ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/Packages.gz`" ]; then \
-               echo "Package list missing or not up-to-date, generating it.";\
-               $(MAKE) package_index; \
-       else \
-               mkdir -p $(TARGET_DIR)/tmp; \
-               $(OPKG) update || true; \
-       fi
+       $(MAKE) package_reload
        $(MAKE) package_install
 ifneq ($(USER_FILES),)
        $(MAKE) copy_files
@@ -136,6 +130,19 @@ package_index: FORCE
        ) >/dev/null 2>/dev/null
        $(OPKG) update || true
 
+package_reload:
+       if [ ! -f "$(PACKAGE_DIR)/Packages" ] || [ ! -f "$(PACKAGE_DIR)/Packages.gz" ] || [ "`find $(PACKAGE_DIR) -cnewer $(PACKAGE_DIR)/Packages.gz`" ]; then \
+               echo "Package list missing or not up-to-date, generating it.";\
+               $(MAKE) package_index; \
+       else \
+               mkdir -p $(TARGET_DIR)/tmp; \
+               $(OPKG) update || true; \
+       fi
+
+package_list: FORCE
+       @$(MAKE) -s package_reload
+       @$(OPKG) list --size 2>/dev/null | awk -F" - " '{printf "%s %s %s\n", $$1, $$2, $$3}'
+
 package_install: FORCE
        @echo
        @echo Installing packages...