Adds '-j' option for 'list' command to generate JSON output.
Signed-off-by: Daniel Golle <redacted>
include $(TOPDIR)/rules.mk
PKG_NAME:=uvol
-PKG_VERSION:=0.4
+PKG_VERSION:=0.5
PKG_RELEASE:=$(AUTORELEASE)
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
}
listvols() {
- local reports rep lv lvs lv_name lv_size lv_mode volname
+ local reports rep lv lvs lv_name lv_size lv_mode volname json_output json_notfirst
+ if [ "$1" = "-j" ]; then
+ json_output=1
+ echo "["
+ shift
+ fi
volname=${1:-.*}
json_init
json_load "$(lvs -o lv_name,lv_size -S "lv_name=~^[rw][owp]_$volname\$ && vg_name=$vg_name")"
lv_mode="${lv_name:0:2}"
lv_name="${lv_name:3}"
lv_size=${lv_size%B}
- echo "$lv_name $lv_mode $lv_size"
+ if [ "$json_output" = "1" ]; then
+ [ "$json_notfirst" = "1" ] && echo ","
+ echo -e "\t{"
+ echo -e "\t\t\"name\": \"$lv_name\","
+ echo -e "\t\t\"mode\": \"$lv_mode\","
+ echo -e "\t\t\"size\": $lv_size"
+ echo -n -e "\t}"
+ json_notfirst=1
+ else
+ echo "$lv_name $lv_mode $lv_size"
+ fi
json_select ..
done
json_select ..
break
done
-}
+ if [ "$json_output" = "1" ]; then
+ [ "$json_notfirst" = "1" ] && echo
+ echo "]"
+ fi
+}
detect() {
local reports rep lv lvs lv_name lv_full_name lv_mode volname devname lv_skip_activation
}
listvols() {
- local volname volmode volsize
+ local volname volmode volsize json_output json_notfirst
+ if [ "$1" = "-j" ]; then
+ json_output=1
+ shift
+ echo "["
+ fi
for voldir in "/sys/devices/virtual/ubi/${ubidev}/${ubidev}_"*; do
read -r volname < "$voldir/name"
case "$volname" in
esac
volmode="${volname:5:2}"
volname="${volname:8}"
- echo "$volname $volmode $volsize"
+ if [ "$json_output" = "1" ]; then
+ [ "$json_notfirst" = "1" ] && echo ","
+ echo -e "\t{"
+ echo -e "\t\t\"name\": \"$volname\","
+ echo -e "\t\t\"mode\": \"$volmode\","
+ echo -e "\t\t\"size\": $volsize"
+ echo -n -e "\t}"
+ json_notfirst=1
+ else
+ echo "$volname $volmode $volsize"
+ fi
done
+
+ if [ "$json_output" = "1" ]; then
+ [ "$json_notfirst" = "1" ] && echo
+ echo "]"
+ fi
}
bootvols() {