On Fri Apr 22 11, Devin Teske wrote: > > > > -----Original Message----- > > From: Alexander Best [mailto:arun...@freebsd.org] > > Sent: Friday, April 22, 2011 7:55 AM > > To: Devin Teske > > Cc: freebsd-hack...@freebsd.org; freebsd-questions@freebsd.org; Teske, > > Devin > > Subject: Re: [UPDATE] host-setup(1): a dialog(1)-based utility for > > configuring FreeBSD > > > > On Thu Apr 21 11, Devin Teske wrote: > > > Hi List Members! > > > > > > > > > > > > I'm proud to announce the first update to my host-setup utility (a > > > dialog(1)-based host configurator for FreeBSD). The following changes > > have been > > > made: > > > > > > > > > > > > - fixed bug where /etc/resolv.conf would be created with 0600 > > permissions > > > > > > - fixed bug when switching from one default gateway to NO default > > gateway > > > > > > - fixed typo in the title of netmask prompt and ifconfig options dialog > > > > > > - fixed bug that prevented entry of netmask if no netmask is configured > > > > > > > > > > > > You can get the updated version here: > > > > > > > > > > > > http://druidbsd.sourceforge.net/download/host-setup.txt > > > > otaku% sudo ./host-setup.txt > > User cancelled. > > otaku% echo $? > > 1 > > otaku% > > Can you provide me with the output of "uname -spr"?
FreeBSD 9.0-CURRENT amd64 > > It's working fine for me on FreeBSD 8.1-RELEASE i386. > > Where you're bombing out is line 2403: > [ $retval -eq 0 ] || die "User cancelled." > > Functionally, that is testing the return status of dialog(1) for the initial > menu. See if you can execute this (a rough approximation of the initial > menu): > > dialog --clear --title foo --hline bar --menu abc 17 55 9 1 a 2 b 3 c 4 d 5 > e X x 2> /tmp/dialog.menu.foo doesn't work. :( otaku% echo $? 255 otaku% cat /tmp/dialog.menu.foo Error: Unknown option --hline. Use --help to list options. otaku% taku% whereis dialog dialog: /usr/bin/dialog /usr/share/man/en.ISO8859-15/man1/dialog.1.gz /usr/src/gnu/usr.bin/dialog otaku% /usr/bin/dialog cdialog (ComeOn Dialog!) version 1.1-20100428 Copyright 2000-2007,2008 Thomas E. Dickey This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [...] > > A menu should appear. Select an item and then execute for me: > > echo $? > > If the above doesn't work, then I suspect that your dialog(1) is not working > properly. I'd then go and try this as a sanity check: > > cd /usr/share/examples/dialog otaku% cd /usr/share/examples/dialog cd: no such file or directory: /usr/share/examples/dialog > sh menubox > echo $? > > The result in both cases (as long as you actually select a menu item) should > be "0". > > Also... (just as a sanity check for me) your /bin/sh is not a symlink to > bash is it? otaku% file /bin/sh /bin/sh: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 9.0 (900034), stripped > -- > Devin > > > > > > > > > > or > > > > > > http://druidbsd.sourceforge.net/download/host-setup.gz > > > > > > or > > > > > > http://druidbsd.sourceforge.net/ > > > > > > > > > > > > > > > > > > For those not familiar with my host-setup(1) utility, it is a 2,500+ > > line shell > > > script that utilizes the dialog(1) utility to walk the system > > administrator > > > through setting up their TimeZone, Hostname, Network Interfaces, Default > > > Gateway, and DNS. Our custom FreeBSD installer sets this script as the > > root > > > login shell, making it very easy for field engineers to quickly get a > > system on > > > the network without having to use the command-line (and without having > > to reboot > > > either). Underneath the hood - behind the system of prompts and dialogs > > - this > > > script manages both the contents of /etc/rc.conf, /etc/resolv.conf, and > > others > > > as well as utilizing ifconfig(8), route(8), and many other tools to > > avoid > > > requiring a reboot, prompting you if you would like to make the new > > changes > > > effective when values are changed from their active settings. > > > > > > > > > > > > Here's the patch to show the details: > > > > > > > > > > > > --- host-setup.3_0 2011-02-10 19:14:30.000000000 -0800 > > > > > > +++ host-setup 2011-04-21 13:38:58.000000000 -0700 > > > > > > @@ -2,12 +2,12 @@ > > > > > > # -*- tab-width: 4 -*- ;; Emacs > > > > > > # vi: set tabstop=4 :: Vi/ViM > > > > > > # > > > > > > -# Revision: 3.0 > > > > > > +# Revision: 3.1 > > > > > > # Created: September 21st, 2010 > > > > > > -# Last Modified: December 6th, 2010 > > > > > > +# Last Modified: April 21st, 2011 > > > > > > ############################################################ COPYRIGHT > > > > > > # > > > > > > -# Devin Teske (c)2006-2010. All Rights Reserved. > > > > > > +# Devin Teske (c)2006-2011. All Rights Reserved. > > > > > > # > > > > > > # Redistribution and use in source and binary forms, with or without > > > > > > # modification, are permitted provided that the following conditions > > > > > > @@ -1353,8 +1353,10 @@ dialog_input_hostname() > > > > > > # permissions and ownership to match resolv.conf(5) before > > > > > > # we write it out and mv(1) it into place). > > > > > > # > > > > > > - quietly chmod "$( stat -f '%#Lp' "$RESOLV_CONF" )" > > "$tmpfile" > > > > > > - quietly chown "$( stat -f '%u:%g' "$RESOLV_CONF" )" > > "$tmpfile" > > > > > > + local mode="$( stat -f '%#Lp' "$RESOLV_CONF" 2> /dev/null )" > > > > > > + local owner="$( stat -f '%u:%g' "$RESOLV_CONF" 2> /dev/null > > )" > > > > > > + quietly chmod "${mode:-0644}" "$tmpfile" > > > > > > + quietly chown "${owner:-root:wheel}" "$tmpfile" > > > > > > # > > > > > > # Operate on resolv.conf(5), replacing only the last > > > > > > @@ -1646,7 +1648,7 @@ dialog_input_netmask() > > > > > > # > > > > > > while :; do > > > > > > - dialog --title "$brand${band:+}${progname:-$0}" \ > > > > > > + dialog --title "$brand${brand:+ }${progname:-$0}" \ > > > > > > --hline "Use numbers, punctuation, TAB or ENTER" \ > > > > > > --inputbox "$msg" 10 50 \ > > > > > > "$_netmask" \ > > > > > > @@ -1664,7 +1666,7 @@ dialog_input_netmask() > > > > > > [ $retval -eq $SUCCESS ] || return $retval > > > > > > # Return success if NULL value was entered > > > > > > - [ "$_netmask" ] || return $SUCCESS > > > > > > + [ "$_input" ] || return $SUCCESS > > > > > > # Take only the first "word" of the user's input > > > > > > _netmask="$_input" > > > > > > @@ -1705,7 +1707,7 @@ dialog_input_options() > > > > > > msg="Please enter additional network media options to be" > > > > > > msg="$msg passed to ifconfig(8) for the $interface interface:" > > > > > > - dialog --title "$brand${band:+}${progname:-$0}" \ > > > > > > + dialog --title "$brand${brand:+ }${progname:-$0}" \ > > > > > > --hline "Use numbers, punctuation, TAB or ENTER" \ > > > > > > --inputbox "$msg" 9 70 \ > > > > > > "$options" \ > > > > > > @@ -2183,9 +2185,12 @@ dialog_menu_netdev_edit() > > > > > > local dr="$( sysrc_get defaultrouter )" err > > > > > > err=$( ifconfig $interface inet $ipaddr \ > > > > > > netmask $netmask $options 2>&1 ) > > > > > > - if [ $? -eq $SUCCESS -a "$dr" ]; then > > > > > > - err=$( route add default "$dr" 2>&1 ) > > > > > > - [ $? -eq $SUCCESS ] || dialog_msgbox "$err" > > > > > > + if [ $? -eq $SUCCESS ]; then > > > > > > + if [ "$dr" -a "$dr" != "NO" ]; then > > > > > > + err=$( route add default "$dr" 2>&1 ) > > > > > > + [ $? -eq $SUCCESS ] || \ > > > > > > + dialog_msgbox "$err" > > > > > > + fi > > > > > > else > > > > > > dialog_msgbox "$err" > > > > > > fi > > > > > > @@ -2524,7 +2529,7 @@ exit $SUCCESS > > > > > > # > > > > > > # $Header$ > > > > > > # > > > > > > -# $Copyright: 2006-2010. Devin Teske. All Rights Reserved. $ > > > > > > +# $Copyright: 2006-2011. Devin Teske. All Rights Reserved. $ > > > > > > # > > > > > > # $Log$ > > > > > > # > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > Cheers, > > > > > > Devin Teske > > > > > > > > > > > > -> FUN STUFF <- > > > > > > -----BEGIN GEEK CODE BLOCK----- > > > > > > Version 3.12 > > > > > > GAT/CS/B/CC/E/IT/MC/M/MU/P/S/TW d+(++) s: a- C+++@$ UB++++$ P++++@$ > > L++++$ E- > > > > > > W+++ N? o? K? w@ O M++$ V- PS+>++ PE@ Y+ PGP-> t(+) 5? X(+) R(-) tv+ > > b+>++ DI+ > > > > > > D+(++) G++ e>++++ h r+++ z+++ > > > > > > ------END GEEK CODE BLOCK------ > > > > > > Learn about the "Geek Code": http://www.geekcode.com/ > > > > > > > > > > > > -> LEGAL DISCLAIMER <- > > > > > > This message contains confidential and proprietary information > > > > > > of the sender, and is intended only for the person(s) to whom it > > > > > > is addressed. Any use, distribution, copying or disclosure by any > > > > > > other person is strictly prohibited. If you have received this > > > > > > message in error, please notify the e-mail sender immediately, > > > > > > and delete the original message without making a copy. > > > > > > > > > > > > -> END TRANSMISSION <- > > > > > > _____________ > > > > > > The information contained in this message is proprietary and/or > > confidential. If you are not the intended recipient, please: (i) delete > > the message and all copies; (ii) do not disclose, distribute or use the > > message in any manner; and (iii) notify the sender immediately. In > > addition, please be aware that any message addressed to our domain is > > subject to archiving and review by persons other than the intended > > recipient. Thank you. > > > _____________ > > > > -- > > a13x > > _____________ > > The information contained in this message is proprietary and/or confidential. > If you are not the intended recipient, please: (i) delete the message and all > copies; (ii) do not disclose, distribute or use the message in any manner; > and (iii) notify the sender immediately. In addition, please be aware that > any message addressed to our domain is subject to archiving and review by > persons other than the intended recipient. Thank you. > _____________ -- a13x _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"