this is a 'cvs diff' on top level for updated freetalk.texi and
--help/--usage/--version and a bugfix in IP validation in bmc-autconfig
regards,
avati
On Wed, Oct 12, 2005 at 01:10:35PM +0530, Anand Avati wrote:
> forgot to attach last time :-)
>
>
> On Tue, Oct 11, 2005 at 07:50:11PM +0000, Anand Avati wrote:
> > hi,
> > attached is a bmc-autconfig script which asks for ip/netmask/gateway in a
> > wizard style and calls bmc-config to --commit them.
> >
> > regards,
> > avati
>
> > _______________________________________________
> > Freeipmi-devel mailing list
> > [email protected]
> > http://lists.gnu.org/mailman/listinfo/freeipmi-devel
>
> ---end quoted text---
> #!/bin/sh
>
> _init ()
> {
> # autotool'ize these two?
> TEMPLATE_DIR="/var/lib/freeipmi";
> TEMPLATE="${TEMPLATE_DIR}/bmc-config-template";
>
> PROG=$(which dialog 2>/dev/null || which whiptail 2>/dev/null);
>
> BMC_CONFIG=$(which bmc-config 2>/dev/null) || {
> echo "bmc-config not found, fatal!";
> return 1;
> }
>
> exec 3>&1
>
> ip="0.0.0.0";
> nm="0.0.0.0";
> gw="0.0.0.0";
>
> return 0;
> }
>
> show_message ()
> {
> [ -z "${PROG}" ] && {
> echo "${1}";
> read;
> return;
> }
> ${PROG} --title "BMC Auto Config" --msgbox "${1}" 0 0 >&3;
>
> return;
> }
>
> get_input ()
> {
> local input;
> [ -z "${PROG}" ] && {
> echo -n "${1}";
> read input;
> echo "${input}";
> return;
> }
> ${PROG} --title "BMC Auto Config" --inputbox "$1" 0 0 "$2" 2>&1 >&3;
> }
>
> validate_ip_address ()
> {
> local quad;
> local oldIFS;
>
> quad=${1}
>
> echo "${oct}" | grep -Eq "^[0-9\.]+$" || {
> echo "ERROR: Input cannot have non-numericals";
> return 1;
> }
>
> oldIFS=${IFS};
> IFS=.
> set -- ${quad};
> IFS=${oldIFS};
>
> if [ "$#" -ne "4" ]; then
> echo "ERROR: IP Address needs 4 octets";
> return 1;
> fi
>
> for oct in $*;
> do
> if [ "${oct}" -lt "0" -o "${oct}" -gt "255" ]; then
> echo "ERROR: Input octets should be between 0 - 255";
> return 1
> fi
> done
>
> return 0
> }
>
>
> get_ip_address ()
> {
> get_input "Enter BMC IP Address: " "${ip}";
> }
>
>
> get_netmask ()
> {
> get_input "Enter BMC Netmask: " "${nm}";
> }
>
>
> get_gateway_ip_address ()
> {
> get_input "Enter BMC Gateway: " "${gw}";
> }
>
> accept_input ()
> {
> iput_func=$1;
> valid_func=$2;
> local err;
> local input;
>
> input=$(${iput_func}) || return 1;
> while ! err=$(${valid_func} ${input})
> do
> show_message "${err}";
> input=$(${iput_func}) || return 1;
> done
>
> echo ${input};
>
> return 0;
> }
>
> main ()
> {
> ip=$(accept_input get_ip_address validate_ip_address) &&
> nm=$(accept_input get_netmask validate_ip_address) &&
> gw=$(accept_input get_gateway_ip_address validate_ip_address) && {
> ${BMC_CONFIG} --commit -f "${TEMPLATE}";
> ${BMC_CONFIG} --commit -k "Lan_Conf:IP_Address=${ip}";
> ${BMC_CONFIG} --commit -k "Lan_Conf:Subnet_Mask=${nm}";
> ${BMC_CONFIG} --commit -k "Lan_Conf:Default_Gateway_IP_Address=${gw}";
> }
> }
>
> _init "$@" && main "$@";
---end quoted text---
--
Anand V. Avati
http://hardcodecafe.com/~avati
finger [EMAIL PROTECTED]Index: doc/freeipmi.texi
===================================================================
RCS file: /cvsroot/freeipmi/freeipmi/doc/freeipmi.texi,v
retrieving revision 1.7
diff -r1.7 freeipmi.texi
55a56
> * bmc-autoconfig:: Wizard-like frontend for bmc-config.
905c906
< @node bmc-info, ipmi-sensors, bmc-config, Top
---
> @node bmc-info, bmc-autoconfig, bmc-config, Top
947c948,967
< @node ipmi-sensors, ipmi-sel, bmc-info, Top
---
> @node bmc-autoconfig, ipmi-sensors, bmc-info, Top
> @chapter bmc-autoconfig
> @pindex bmc-autoconfig
> @command{bmc-autoconfig} utility is a wizard-like frontend to the
> @command{bmc-config} command, which has a curses/text based interfaced
> questionaire asking for IP/Netmask/Gateway to be committed.
>
> @section Command-line options
> @itemize @bullet
> @item -u, --usage @*
> Show short usage message.
>
> @item -h, --help @*
> Show help.
>
> @item -V, --version @*
> Show version information.
> @end itemize
>
> @node ipmi-sensors, ipmi-sel, bmc-autoconfig, Top
Index: fish/scripts/bmc-autoconfig/bmc-autoconfig
===================================================================
RCS file:
/cvsroot/freeipmi/freeipmi/fish/scripts/bmc-autoconfig/bmc-autoconfig,v
retrieving revision 1.1
diff -r1.1 bmc-autoconfig
26a27,30
> VERSION="0.1";
> ME=$(basename ${0});
> SUPPORT_EMAIL="[EMAIL PROTECTED]";
> DESCRIPTION="${ME} is an autoconfiguration tool and wrapper around
> bmc-config"
30c34
< BMC_CONFIG=$(which bmc-config 2>/dev/null) || {
---
> BMC_CONFIG=$(which echo 2>/dev/null) || {
34a39
>
75c80
< echo "${oct}" | grep -Eq "^[0-9\.]+$" || {
---
> echo "${quad}" | grep -Eq "^[0-9\.]+$" || {
140,147c145,183
< ip=$(accept_input get_ip_address validate_ip_address) &&
< nm=$(accept_input get_netmask validate_ip_address) &&
< gw=$(accept_input get_gateway_ip_address validate_ip_address) && {
< ${BMC_CONFIG} --commit -f "${TEMPLATE}";
< ${BMC_CONFIG} --commit -k "Lan_Conf:IP_Address=${ip}";
< ${BMC_CONFIG} --commit -k "Lan_Conf:Subnet_Mask=${nm}";
< ${BMC_CONFIG} --commit -k "Lan_Conf:Default_Gateway_IP_Address=${gw}";
< }
---
> case "${1}" in
> '--usage'|'-u')
> cat <<EOF
> Usage: ${ME} [-?V] [--help] [--usage] [--version]
> EOF
> ;;
> '--help'|'-h')
> cat <<EOF
> Usage: ${ME} [OPTION...]
> ${DESCRIPTION}
>
> -h, --help Give this help list
> -u, --usage Give a short usage message
> -V, --version Print program version
>
> Report bugs to ${SUPPORT_EMAIL}
> EOF
> ;;
> '--version'|'-V')
> echo ${ME} ${VERSION};
> ;;
> '')
> ip=$(accept_input get_ip_address validate_ip_address) &&
> nm=$(accept_input get_netmask validate_ip_address) &&
> gw=$(accept_input get_gateway_ip_address validate_ip_address) && {
> ${BMC_CONFIG} --commit -f "${TEMPLATE}";
> ${BMC_CONFIG} --commit -k "Lan_Conf:IP_Address=${ip}";
> ${BMC_CONFIG} --commit -k "Lan_Conf:Subnet_Mask=${nm}";
> ${BMC_CONFIG} --commit -k
> "Lan_Conf:Default_Gateway_IP_Address=${gw}";
> }
> ;;
> *)
> cat <<EOF
> ${ME}: invalid option -- ${1}
> Try \`${ME} --help' or \`${ME} --usage' for more information.
> EOF
>
> esac
>
_______________________________________________
Freeipmi-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/freeipmi-devel