diff options
author | dteske <dteske@FreeBSD.org> | 2013-12-07 00:31:01 +0000 |
---|---|---|
committer | dteske <dteske@FreeBSD.org> | 2013-12-07 00:31:01 +0000 |
commit | ea67b8239d4b9fc5ec66acb0b55c08b6724c220c (patch) | |
tree | 2bf3a34e8912087de92cb6b8e1a3cdfe286c7877 /usr.sbin/bsdconfig/share/media/dos.subr | |
parent | 553f713863e06db13e30699129b501901c7ad3de (diff) | |
download | FreeBSD-src-ea67b8239d4b9fc5ec66acb0b55c08b6724c220c.zip FreeBSD-src-ea67b8239d4b9fc5ec66acb0b55c08b6724c220c.tar.gz |
Performance and debugging enhancements:
+ Remove UNAME_P=$(...) from startup/misc -- already supplied by common.subr
+ Use f_getvar instead of $(eval echo \$$var) -- f_getvar is sub-shell free
+ Add `-e' and `-k var' options to f_eval_catch -- increasing use-cases
+ Use f_eval_catch to display errors on failure -- reducing duplicated code
+ Use f_eval_catch when we need output from a command -- improving debugging
+ Optimize f_isinter of strings.subr for performance -- now sub-shell free
+ Improve error checking on pidfiles -- using f_eval_catch and f_isinteger
+ Use $var_to_set arg of f_ifconfig_{inet,netmask} -- eliminate sub-shells
+ Use f_sprintf instead of $(printf ...) -- consolidate sub-shells
+ Use $var_to_set arg of f_route_get_default -- eliminate sub-shells
+ Add f_count to replace $(set -- ...;echo $#) -- eliminate sub-shells
+ Add f_count_ifs to replace $(IFS=x;set -- ...;echo $#) -- no sub-shells
+ Replace var="$var${var:+ }..." in loops with var="$var ..." with a follow-
up var="${var# }" to trim leading whitespace -- optimize loops
+ Use $var_to_set arg of f_resolv_conf_nameservers -- eliminate sub-shells
+ Comments for the f_eval_catch function
+ Remove a duplicate `local ... desc ...' in f_device_get_all of device.subr
+ Use $var_to_set arg of f_device_capacity -- eliminate sub-shells
+ Whitespace fixes in f_dialog_init of dialog.subr
+ Optimize f_inet_atoi of media/tcpip.subr for performance -- sub-shell free
+ In several cases, send stderr to /dev/null -- clean up runtime execution
+ Change f_err of common.subr to go to program stderr not terminal stderr,
allowing redirection of output from functions that use f_err
+ Disable debugging when using f_getvar to get variable argument to
f_startup_rcconf_map_expand of startup/rcconf.subr
+ Use f_replace_all instead of $(echo ... | tr | sed) -- performance
+ Add a $var_to_set option to f_index_{file,menusel_{command,keyword}} of
common.subr -- centralize sub-shells
Diffstat (limited to 'usr.sbin/bsdconfig/share/media/dos.subr')
-rw-r--r-- | usr.sbin/bsdconfig/share/media/dos.subr | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/usr.sbin/bsdconfig/share/media/dos.subr b/usr.sbin/bsdconfig/share/media/dos.subr index be4cfc7..e8e6aa6 100644 --- a/usr.sbin/bsdconfig/share/media/dos.subr +++ b/usr.sbin/bsdconfig/share/media/dos.subr @@ -56,7 +56,7 @@ f_media_set_dos() local devs ndevs f_device_find "" $DEVICE_TYPE_DOS devs - ndevs=$( set -- $devs; echo $# ) + f_count ndevs $devs if [ ${ndevs:=0} -eq 0 ]; then f_show_msg "$msg_no_dos_primary_partitions_found" @@ -93,6 +93,7 @@ f_media_set_dos() # f_media_init_dos() { + local funcname=f_media_init_dos local dev="$1" devname err device_$dev get devname devname || return $FAILURE @@ -104,14 +105,13 @@ f_media_init_dos() return $SUCCESS fi - if [ ! -e "$MOUNTPOINT" ] && - ! err=$( mkdir -p "$MOUNTPOINT" 2>&1 ) - then - f_dialog_msgbox "$err" - return $FAILURE + if [ ! -e "$MOUNTPOINT" ]; then + f_eval_catch $funcname mkdir 'mkdir -p "%s"' "$MOUNTPOINT" || + return $FAILURE fi - if ! err=$( mount_msdosfs "$devname" "$MOUNTPOINT" 2>&1 ) + if ! f_eval_catch -dk err $funcname mount_msdosfs \ + 'mount_msdosfs "%s" "%s"' "$devname" "$MOUNTPOINT" then err="${err#mount_msdosfs: }"; err="${err#$devname: }" f_show_msg "$msg_error_mounting_device" \ @@ -146,11 +146,14 @@ f_media_get_dos() # f_media_shutdown_dos() { + local funcname=f_media_shutdown_dos local dev="$1" err [ "$DOS_MOUNTED" ] || return $FAILURE - if ! err=$( umount -f "$MOUNTPOINT" 2>&1 ); then + if ! f_eval_catch -dk err $funcname umount \ + 'umount -f "%s"' "$MOUNTPOINT" + then err="${err#umount: }"; err="${err#*: }" f_show_msg "$msg_could_not_unmount_the_dos_partition" \ "$MOUNTPOINT" "$err" |