packages/utils/rpcd-mod-packagelist/files/packagelist.rpcd
Paul Spooren 0d2e674aa1 rpcd-mod-packagelist: add package
Provides a way to acquire the list of installed packages without the
need to have opkg available. It is being used for the GSoC 17 project
implementing easy sysupgrade functionality.

Signed-off-by: Paul Spooren <paul@spooren.de>
2017-07-25 17:54:24 +02:00

40 lines
632 B
Bash
Executable file

#!/bin/sh
. /usr/share/libubox/jshn.sh
case "$1" in
list)
json_init
json_add_object "list"
json_dump
;;
call)
case "$2" in
list)
json_init;
json_add_object "packagelist"
if [ -f /usr/lib/opkg/status ]; then
while read var p1 p2 p3; do
if [ "$var" = "Package:" ]; then
pkg="$p1"
fi
if [ "$var" = "Version:" ]; then
version="$p1"
fi
if [ "$var" = "Status:" \
-a "$p1" = "install" \
-a "$p2" = "user" \
-a "$p3" = "installed" ]; then
json_add_string "$pkg" "$version";
fi
done < /usr/lib/opkg/status
fi
json_close_object
json_dump
;;
esac
;;
esac