uvol: update to version 0.5
authorDaniel Golle <redacted>
Wed, 15 Sep 2021 21:31:30 +0000 (22:31 +0100)
committerDaniel Golle <redacted>
Wed, 15 Sep 2021 21:33:03 +0000 (22:33 +0100)
Adds '-j' option for 'list' command to generate JSON output.

Signed-off-by: Daniel Golle <redacted>
utils/uvol/Makefile
utils/uvol/files/lvm.sh
utils/uvol/files/ubi.sh

index e988d5168272abbb98bbd9f315f2b95e8af54240..e167e20d0314dc335c598041b1cbfcca13245138 100644 (file)
@@ -1,7 +1,7 @@
 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>
index 95281194bad632b98e48b7298a33b2796efa3edf..08ff8d979d510439986e4a21ae4ff32160e856f7 100644 (file)
@@ -295,7 +295,12 @@ updatevol() {
 }
 
 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")"
@@ -311,14 +316,28 @@ listvols() {
                        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
index b0b363d7ed7b076a72c567a449c2059977a847dd..0af34f3c0286e6d60455db675e3a5417b1e0ac37 100644 (file)
@@ -194,7 +194,12 @@ updatevol() {
 }
 
 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
@@ -207,8 +212,23 @@ listvols() {
                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() {
git clone https://git.99rst.org/PROJECT