/usr/local/jetapps/usr/share/rear/lib
# Utility functions for working with columns in output of tools. # Columns have a header. The header fields are separated by at least two spaces. # These functions expect output like: # << # Model: ATA TOSHIBA MK1652GS (scsi) # Disk /dev/sda: 160GB # Sector size (logical/physical): 512B/512B # Partition Table: msdos # # Number Start End Size Type File system Flags # 1 32.3kB 98.7MB 98.7MB primary ext3 boot # 2 98.7MB 140GB 140GB primary lvm # >> set_separator() { OIFS=$IFS IFS="$1" } restore_separator() { IFS=$OIFS } columns= # produces a list of header=end pairs in $columns init_columns() { local line=$1 columns="" local word="" local wasspace="" local len=${#line} local i=0 while (( $i < $len )) ; do local char="${line:$i:1}" if [[ "$wasspace" ]] && [[ "$char" = " " ]] ;then if [[ "$word" ]] ; then # word complete, write to list let start=$i-${#word} word=$( echo "$word" | tr '[:upper:]' '[:lower:]') columns+="${word%% }=$start;" word="" fi else word="${word}${char}" fi if [[ "$char" = " " ]] ; then wasspace="yes" else wasspace="" fi let i++ done # last word let start=$i-${#word} word=$( echo "$word"| tr '[:upper:]' '[:lower:]') columns+="${word%% }=$start;" #echo "c:$columns" } # get_column_size $header get_column_size() { local start=$(get_column_start "$1") local nextheader=$(get_next_header "$1") if [[ -z "$nextheader" ]] ; then echo "255" return 0 fi local end=$(get_column_start "$nextheader") let local size=$end-$start echo "$size" } # get_column_start $header get_column_start() { local pair set_separator ";" for pair in $columns ; do local header=${pair%=*} local hstart=${pair#*=} if [[ "$header" = "$1" ]] ; then echo "$hstart" restore_separator return 0 fi done restore_separator return 1 } # get_next_header $header get_next_header() { local pair local previous set_separator ";" for pair in $columns ; do local header=${pair%=*} local hstart=${pair#*=} if [[ "$previous" = "$1" ]] ; then echo "$header" restore_separator return 0 fi previous=$header done restore_separator return 1 } # get_columns $line $header1 $header2 # print the contents of the columns, separated by ; get_columns() { local line=$1 shift local headers=$@ local value="" for header in $headers ; do local start=$(get_column_start "$header") local size=$(get_column_size "$header") #echo "$header $start $size" value+="${line:$start:$size};" done echo "$value" }
.
Edit
..
Edit
.shellcheckrc
Edit
_input-output-functions.sh
Edit
array-functions.sh
Edit
authtoken-functions.sh
Edit
bareos-functions.sh
Edit
bootloader-functions.sh
Edit
borg-functions.sh
Edit
checklayout-workflow.sh
Edit
columns-functions.sh
Edit
config-functions.sh
Edit
drlm-functions.sh
Edit
dump-workflow.sh
Edit
filesystems-functions.sh
Edit
finalizeonly-workflow.sh
Edit
format-workflow.sh
Edit
framework-functions.sh
Edit
global-functions.sh
Edit
help-workflow.sh
Edit
hp_raid-functions.sh
Edit
layout-functions.sh
Edit
layoutonly-workflow.sh
Edit
linux-functions.sh
Edit
mail-functions.sh
Edit
mkbackup-workflow.sh
Edit
mkbackuponly-workflow.sh
Edit
mkboot-workflow.sh
Edit
mkopalpba-workflow.sh
Edit
mkrescue-functions.sh
Edit
mkrescue-workflow.sh
Edit
mountonly-workflow.sh
Edit
network-functions.sh
Edit
opal-functions.sh
Edit
opaladmin-workflow.sh
Edit
output-functions.sh
Edit
progresssubsystem.nosh
Edit
rear-shell.bashrc
Edit
recover-workflow.sh
Edit
restoreonly-workflow.sh
Edit
rsync-functions.sh
Edit
savelayout-workflow.sh
Edit
serial-functions.sh
Edit
sesam-functions.sh
Edit
shell-workflow.sh
Edit
udev-workflow.sh
Edit
uefi-functions.sh
Edit
validate-workflow.sh
Edit
validated
Edit
write-protect-functions.sh
Edit