#!/bin/sh
# 脚本功能：json方式返回 大于某个容量的磁盘挂载点及其大小
. /usr/share/libubox/jshn.sh

get_disk_info() {
    disk_info=$(lsblk |grep disk)
    IFS=$'\n'
    for disk in `echo -e "$disk_info"`; do
        disk_name=$(echo $disk |awk '{print $1}')
        disk_capacity=$(echo $disk |awk '{print $4}')
        json_add_string "$disk_name" "$disk_capacity"
    done
}

get_part_info() {
    part_info=$(lsblk |grep part)
    IFS=$'\n'
    for part in `echo -e "$part_info"`; do
        part_name=$(echo $part |awk '{print $1}')
        part_capacity=$(echo $part |awk '{print $4}')
        json_add_string "$part_name" "$part_capacity"
    done
}

get_mount_point_info() {
    mount_point_info=$(lsblk -o SIZE,MOUNTPOINT |grep -v MOUNTPOINT)
    #filter /rom /overlay [SWAP]
    mount_point_info=$(echo -e "$mount_point_info" |grep -v -E "/rom|/overlay|\[SWAP\]")
    #filter capacity that unit is M or K
    mount_point_info=$(echo -e "$mount_point_info" |grep -v -E "M|K")

    IFS=$'\n'
    #filter start with /mnt
    for mount_point in `echo -e "$mount_point_info"`; do
        mount_point_name=$(echo $mount_point |awk '{print $2}')
        mount_point_capacity=$(echo $mount_point |awk '{print $1}')
        if [ -z "$mount_point_capacity" ] || [ -z "$mount_point_name" ]; then
            continue
        fi

        json_add_string "$mount_point_name/openfogos" "$mount_point_capacity"
    done
}

json_init
case $1 in
    disk)
        get_disk_info
        ;;
    part)
        get_part_info
        ;;
    mount_point)
        get_mount_point_info
        ;;
esac
json_dump
