# Prints the lines of a command '$2' output which contain the text '$1'. grepcmd () { grepcmd_output="$( $2 )" printf "$grepcmd_output\n" | while IFS= read -r grepcmd_line do case "$grepcmd_line" in *"$1"*) printf '%s\n' "$grepcmd_line" ;; esac done return 0 } # Checks if a command '$2' output contains the text '$1'. grepcmd_check () { grepcmd_check_output="$( $2 )" printf "$grepcmd_check_output\n" | while IFS= read -r grepcmd_check_line do case "$grepcmd_check_line" in *"$1"*) return 0 ;; esac done return 1 } # Trims the leading and trailing whitespace characters of '$1' variable. trimmer () { trimmer_line="$1" trimmer_line="${trimmer_line#"${trimmer_line%%[![:space:]]*}"}" trimmer_line="${trimmer_line%"${trimmer_line##*[![:space:]]}"}" printf "$trimmer_line\n" return 0 } # Prints the remaining free space at coreboot '$3' ROM using '$2' cbfstool. cbfs_freespacer () { cbfs_freespacer_line=$( grepcmd "(empty)" "$2 $3 print" ) if grepcmd_check "empty" " cbfs_freespacer_line=${cbfs_freespacer_line#??????????????????????????????????????????????} cbfs_freespacer_line=${cbfs_freespacer_line%????} cbfs_freespacer_line=$( trimmer "$cbfs_freespacer_line" ) cbfs_freespacer_line=$(( "$cbfs_freespacer_line" / 1024 )) printf "$cbfs_freespacer_line K\n" } cbfs_freespacer "$1" "./build/cbfstool" "./build/coreboot.rom"