freeipmi-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Freeipmi-devel] bmc-autoconfig


From: Anand Avati
Subject: Re: [Freeipmi-devel] bmc-autoconfig
Date: Thu, 13 Oct 2005 20:15:17 +0530
User-agent: Mutt/1.4.2.1i

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
> > address@hidden
> > 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 address@hidden

Attachment: ipmi.diff
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]