Bring back snapshot listing in new BEADM LIST style, cleanup AWK getline commands, fix Boot Environment display length calculation.

This commit is contained in:
Slawomir Wojciech Wojtczak (vermaden) 2012-09-17 08:37:21 +02:00
parent 238b91277b
commit 51509abad1
1 changed files with 15 additions and 12 deletions

27
beadm
View File

@ -210,8 +210,9 @@ case ${1} in
return BENAME return BENAME
} }
function __convert_date(DATE) { function __convert_date(DATE) {
"date -j -f \"%a %b %d %H:%M %Y\" \"" DATE "\" +\"%Y-%m-%d %H:%M\"" | getline NEW CMD_DATE = "date -j -f \"%a %b %d %H:%M %Y\" \"" DATE "\" +\"%Y-%m-%d %H:%M\""
close("date -j -f \"%a %b %d %H:%M %Y\" \"" DATE "\" +\"%Y-%m-%d %H:%M\"") CMD_DATE | getline NEW
close(CMD_DATE)
return NEW return NEW
} }
BEGIN { BEGIN {
@ -227,20 +228,22 @@ case ${1} in
FSNAME_LENGTH = 2 FSNAME_LENGTH = 2
if(OPTION_a == 1) if(OPTION_a == 1)
FSNAME_LENGTH = 19 FSNAME_LENGTH = 19
while("mount" | getline) { CMD_MOUNT="mount"
while(CMD_MOUNT | getline)
if($1 ~ "^" BENAME_BEGINS_WITH) if($1 ~ "^" BENAME_BEGINS_WITH)
MOUNTS[$1] = $3 MOUNTS[$1] = $3
} close(CMD_MOUNT)
FS = "\\t" FS = "\\t"
while("zfs list -H -t all -s creation -o name,used,usedds,usedbysnapshots,usedrefreserv,refer,creation,origin -r " BENAME_BEGINS_WITH | getline) { CMD_ZFS_LIST = "zfs list -H -t all -s creation -o name,used,usedds,usedbysnapshots,usedrefreserv,refer,creation,origin -r "
while(CMD_ZFS_LIST BENAME_BEGINS_WITH | getline) {
if($1 != BENAME_BEGINS_WITH) { if($1 != BENAME_BEGINS_WITH) {
FSNAME = $1 FSNAME = $1
FSNAMES[length(FSNAMES) + 1] = FSNAME FSNAMES[length(FSNAMES) + 1] = FSNAME
USED = __normalize($2) USED = __normalize($2)
USEDBYDATASET = __normalize($3) USEDBYDATASET = __normalize($3)
USEDBYSNAPSHOTS = __normalize($4) USEDBYSNAPSHOTS = __normalize($4)
USEDREFRESERV = __normalize($5) USEDREFRESERV = __normalize($5)
REFER[FSNAME] = __normalize($6) REFER[FSNAME] = __normalize($6)
CREATIONS[FSNAME] = $7 CREATIONS[FSNAME] = $7
ORIGINS[FSNAME] = $8 ORIGINS[FSNAME] = $8
if(FSNAME ~ /@/) if(FSNAME ~ /@/)
@ -269,10 +272,10 @@ case ${1} in
FSNAME_LENGTH = LF FSNAME_LENGTH = LF
} }
} }
close(CMD_ZFS_LIST)
split(BELIST, BENAMES, " ") split(BELIST, BENAMES, " ")
if(OPTION_a == 1) { if(OPTION_a == 1) {
BE_HEAD = "BE/Dataset/Snapshot" BE_HEAD = "BE/Dataset/Snapshot"
FSNAME_LENGTH = FSNAME_LENGTH + 1 - length(BENAME_BEGINS_WITH)
printf "%-" FSNAME_LENGTH + 2 "s %-6s %-" MOUNTPOINT_LENGTH "s %6s %s\n", BE_HEAD, "Active", "Mountpoint", "Space", "Created" printf "%-" FSNAME_LENGTH + 2 "s %-6s %-" MOUNTPOINT_LENGTH "s %6s %s\n", BE_HEAD, "Active", "Mountpoint", "Space", "Created"
} }
else { else {
@ -286,7 +289,7 @@ case ${1} in
print BENAME print BENAME
for(J = 1; J <= length(FSNAMES); J++) { for(J = 1; J <= length(FSNAMES); J++) {
FSNAME = FSNAMES[J] FSNAME = FSNAMES[J]
if(FSNAME ~ "^" BENAME_BEGINS_WITH "/" BENAME "(/[^@]*)?$") { if(FSNAME ~ "^" BENAME_BEGINS_WITH "/" BENAME ) {
ACTIVE = "" ACTIVE = ""
if(FSNAME == ROOTFS) if(FSNAME == ROOTFS)
ACTIVE = ACTIVE "N" ACTIVE = ACTIVE "N"